8932 lines
560 KiB
C
8932 lines
560 KiB
C
#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 command_t *firstcommand,*lastcommand;
|
|
extern map_t *firstmap;
|
|
extern race_t *firstrace, *lastrace;
|
|
extern raceclass_t *firstraceclass, *lastraceclass;
|
|
extern job_t *firstjob, *lastjob;
|
|
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 *techadjective[];
|
|
extern char *technoun[];
|
|
|
|
extern objecttype_t *lastot;
|
|
|
|
command_t *addcommand(enum COMMAND id, char ch, char *desc) {
|
|
command_t *a;
|
|
|
|
// 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) {
|
|
// 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', "Communicate with an ally.");
|
|
//addcommand(CMD_DROP, 'd', "Drop an item.");
|
|
addcommand(CMD_DROPMULTI, 'd', "Drop one or more items.");
|
|
addcommand(CMD_EAT, 'e', "Eat something.");
|
|
addcommand(CMD_EAT, 'E', "Enhance your skills.");
|
|
addcommand(CMD_MAGIC, 'm', "Use magic or abilities.");
|
|
addcommand(CMD_MEMMAGIC, 'M', "Memorise a magic shortcut");
|
|
addcommand(CMD_OFFER, 'O', "Offer a sacrifice to the gods.");
|
|
addcommand(CMD_OPERATE, 'o', "Operate a tool/wand/device.");
|
|
addcommand(CMD_PICKLOCK, 'p', "Pick a lock.");
|
|
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_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.");
|
|
// 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.");
|
|
// 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_INV, 'i', "Display your inventory.");
|
|
// GAME FUNCTIONS
|
|
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;
|
|
// 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");
|
|
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_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_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, "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, "graph paper");
|
|
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_STARTSKILL, SK_SPELLCASTING, PR_MASTER, NA, NULL);
|
|
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_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);
|
|
} else {
|
|
mayusespellschool(lastjob->flags, i, F_CANCAST);
|
|
//mayusespellschool(lastjob->flags, i, F_CANWILL);
|
|
}
|
|
}
|
|
addflag(lastjob->flags, F_NOSCORE, B_TRUE, NA, NA, NULL);
|
|
|
|
addjob(J_ADVENTURER, "Adventurer");
|
|
// stat mods
|
|
// initial objects
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "2 bananas");
|
|
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");
|
|
// 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_LOCKPICKING, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SPELLCASTING, 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");
|
|
// 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_COMMANDO, "Commando");
|
|
// stat mods
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_STR, 2, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_IQ, -3, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CON, 3, 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_ATHLETICS, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_FIRSTAID, PR_NOVICE, 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_COOKING, 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");
|
|
// stats
|
|
addflag(lastjob->flags, F_MPDICE, 1, 1, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_WIS, 3, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CHA, 2, 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_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_COOKING, NA, 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);
|
|
// abilities
|
|
mayusespellschool(lastjob->flags, SS_NATURE, F_CANCAST);
|
|
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_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);
|
|
|
|
///////////////////////////////////////
|
|
addjob(J_MONK, "Monk");
|
|
// stats
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_STR, 1, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_AGI, 2, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_WIS, 2, NA, NULL);
|
|
// 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");
|
|
// 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_EVASION, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_PERCEPTION, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_STEALTH, PR_NOVICE, 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_COOKING, NA, NA, NULL);
|
|
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_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);
|
|
addflag(lastjob->flags, F_LEVSPELL, 2, OT_S_CALMANIMALS, NA, 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);
|
|
addjob(J_PLUMBER, "Plumber");
|
|
// stats
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CHA, -4, NA, NULL);
|
|
// initial objects
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "spanner");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "10 gold coins");
|
|
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, "3-5 mushrooms");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "rubber boots");
|
|
// initial skills
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SWIMMING, PR_NOVICE, NA, NULL);
|
|
// learnable akills
|
|
addflag(lastjob->flags, F_CANLEARN, SK_ATHLETICS, 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_METALWORK, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_TECHUSAGE, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SPELLCASTING, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SS_FIRE, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SS_COLD, PR_ADEPT, NA, NULL);
|
|
// abilities
|
|
addflag(lastjob->flags, F_EVASION, 30, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_OBESE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANWILL, OT_A_JUMP, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_HIRABLE, B_TRUE, NA, NA, NULL);
|
|
addjob(J_PRINCE, "Prince");
|
|
// stats
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CHA, 4, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_WIS, 2, 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");
|
|
// 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_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_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_PERCEPTION, NA, NA, NULL);
|
|
// abilities
|
|
addflag(lastjob->flags, F_HIRABLE, B_TRUE, NA, NA, NULL);
|
|
|
|
addjob(J_PIRATE, "Pirate");
|
|
// stats
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_STR, 3, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_AGI, 2, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CON, 4, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_WIS, -3, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CHA, -3, 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_LONGBLADES, 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_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);
|
|
// 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");
|
|
// stats
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_STR, -3, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_AGI, 4, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CON, -2, NA, NULL);
|
|
// initial objects
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "dagger");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "leather armour");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "50-100 gold coins");
|
|
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_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_BEGINNER, 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_THIEVERY, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LORE_HUMANOID, PR_BEGINNER, NA, NULL);
|
|
// learnable skills
|
|
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_SPEECH, 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_SWIMMING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_UNARMED, PR_EXPERT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_TECHUSAGE, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_PERCEPTION, PR_SKILLED, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_THROWING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_TWOWEAPON, PR_EXPERT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SPELLCASTING, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SS_DIVINATION, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SS_GRAVITY, PR_BEGINNER, 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");
|
|
// stats
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_STR, 2, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_AGI, 2, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_IQ, -3, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CON, 2, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CHA, -3, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_WIS, -4, NA, NULL);
|
|
// 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_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_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_CARTOGRAPHY, PR_SKILLED, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_CLIMBING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_COOKING, NA, NA, NULL);
|
|
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_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_THROWING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_TWOWEAPON, NA, NA, NULL);
|
|
// abilities
|
|
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);
|
|
|
|
addjob(J_WIZARD, "Wizard");
|
|
// stats
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_STR, -4, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_IQ, 4, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CON, -3, NA, NULL);
|
|
// initial objects
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "knife");
|
|
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_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_SPELLCASTING, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_CHANNELING, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_STAVES, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SS_WILD, PR_NOVICE, NA, NULL);
|
|
// learnable skills
|
|
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_SPEECH, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SS_AIR, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SS_DEATH, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SS_DIVINATION, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SS_ENCHANTMENT, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SS_FIRE, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SS_COLD, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SS_GRAVITY, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SS_SUMMONING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SS_TRANSLOCATION, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LORE_DEMONS, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LORE_UNDEAD, NA, NA, NULL);
|
|
// abilities
|
|
addflag(lastjob->flags, F_MAXHPMOD, 50, 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);
|
|
// monster job flags
|
|
f = addflag(lastjob->flags, F_CANCAST, OT_S_FIREDART, NA, NA, NULL); addcondition(f, FC_IFMONSTER, 50);
|
|
f = addflag(lastjob->flags, F_CANCAST, OT_S_COLDRAY, NA, NA, NULL); addcondition(f, FC_IFMONSTER, 50);
|
|
f = addflag(lastjob->flags, F_CANCAST, OT_S_HEALINGMIN, NA, NA, NULL); addcondition(f, FC_IFMONSTER, 33);
|
|
f = addflag(lastjob->flags, F_CANCAST, OT_S_BLINK, NA, NA, NULL); addcondition(f, FC_IFMONSTER, 33);
|
|
f = addflag(lastjob->flags, F_CANCAST, OT_S_TELEKINESIS, NA, NA, NULL); addcondition(f, FC_IFMONSTER, 33);
|
|
f = addflag(lastjob->flags, F_CANCAST, OT_S_HASTE, NA, NA, NULL); addcondition(f, FC_IFMONSTER, 20);
|
|
f = addflag(lastjob->flags, F_CANCAST, OT_S_HEALING, NA, NA, NULL); addcondition(f, FC_IFMONSTER, 20);
|
|
addflag(lastjob->flags, F_CASTCHANCE, 30, NA, NA, NULL);
|
|
|
|
// non-player jobs
|
|
addjob(J_SHOPKEEPER, "Shopkeeper");
|
|
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) {
|
|
//int ch;
|
|
int i,n;
|
|
|
|
// 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);
|
|
}
|
|
|
|
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);
|
|
}
|
|
}
|
|
|
|
shufflehiddennames();
|
|
|
|
|
|
// 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_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);
|
|
addobmod(OM_SHODDY,"shoddy");
|
|
addflag_real(lastobmod->flags, F_SHODDY, B_TRUE, NA, NA, NULL, PERMENANT, B_KNOWN, -1);
|
|
addobmod(OM_POISONED,"poisoned");
|
|
addflag_real(lastobmod->flags, F_HITCONFER, F_POISONED, SC_POISON, 25, "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 etc.
|
|
// ie. spellbook of flight, boots of flight.
|
|
|
|
// weapons
|
|
addbrand(BR_BALANCE, "of balance", BP_WEAPON);
|
|
addflag_real(lastbrand->flags, F_BALANCE, B_TRUE, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_IMPACT, "of impact", BP_WEAPON); // TODO: make thisonly go ont obashing weapons
|
|
addflag_real(lastbrand->flags, F_HEAVYBLOW, B_TRUE, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_MERCY, "of mercy", BP_WEAPON);
|
|
addflag_real(lastbrand->flags, F_MERCIFUL, B_TRUE, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_PYROMANIA, "of pyromania", BP_WEAPON);
|
|
addflag_real(lastbrand->flags, F_FLAMESTRIKE, B_TRUE, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_REVENGE, "of revenge", BP_WEAPON);
|
|
addflag_real(lastbrand->flags, F_REVENGE, B_TRUE, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_SHARPNESS, "of sharpness", BP_WEAPON);
|
|
addflag_real(lastbrand->flags, F_ARMOURPIERCE, B_TRUE, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
|
|
// feet
|
|
addbrand(BR_LEVITATION, "of hovering", BP_FEET);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_LEVITATING, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_FEATHERFALL, "of featherfall", BP_FEET);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_DTIMMUNE, DT_FALL, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_SWIFTNESS, "of swiftness", BP_FEET);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_FASTMOVE, 5, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_SLOTH, "of sloth", BP_FEET);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_SLOWMOVE, 5, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_STEALTH, "of stealth", BP_FEET);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_SILENTMOVE, B_TRUE, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
|
|
// hands
|
|
addbrand(BR_POWER, "of power", BP_HANDS);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_ATTRMOD, A_STR, 3, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_WEAKNESS, "of feebleness", BP_HANDS);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_ATTRMOD, A_STR, -3, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_NIMBLENESS, "of nimbleness", BP_HANDS);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_ATTRMOD, A_AGI, 3, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
|
|
// head
|
|
addbrand(BR_THINKING, "of thinking", BP_HEAD);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_ATTRMOD, A_IQ, 3, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_KNOWLEDGE, "of knowledge", BP_HEAD);
|
|
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);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_DETECTLIFE, 5, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_TELEKINESIS, "of the poltergeist", BP_HEAD);
|
|
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);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_ATTRSET, A_STR, 18, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_FEEBLENESS, "of feebleness", BP_WAIST);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_ATTRSET, A_STR, 3, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_FLIGHT, "of the eagle", BP_WAIST);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_FLYING, B_TRUE, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_SPEED, "of swiftness", BP_WAIST);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_FASTACT, 5, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
|
|
// shoulders
|
|
addbrand(BR_CONCEALMENT, "of concealment", BP_SHOULDERS);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_INVISIBLE, B_TRUE, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_ANTIMAG, "of antimagic", BP_SHOULDERS);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_RESISTMAG, 10, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_SHADOWS, "of shadows", BP_SHOULDERS);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_CANWILL, OT_A_DARKWALK, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
|
|
// body
|
|
addbrand(BR_HEALTH, "of health", BP_BODY);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_ATTRMOD, A_CON, 3, 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_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_RUBBER, "rubber", 4);
|
|
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);
|
|
addmaterial(MT_BONE, "bone", 5);
|
|
addflag(lastmaterial->flags, F_HARDNESS, 3, 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_DFEATURE, "Dungeon Features", "Doors, etc.", '\\', C_GREY);
|
|
addoc(OC_FURNITURE, "Furniture", "Various kinds of mundane (or not so mundane) furnishings.", '\\', C_BROWN);
|
|
addocnoun(lastobjectclass, "furniture");
|
|
addoc(OC_TERRAIN, "Terrain", "Water, etc.", '\\', C_GREY);
|
|
addoc(OC_TRAP, "Trap", "Fiendish traps.", '^', C_GREY);
|
|
addocnoun(lastobjectclass, "trap");
|
|
addoc(OC_MONEY, "Money", "The standard currency of Nexus.", '$', C_GREY);
|
|
addoc(OC_SCROLL, "Scrolls", "An arcane roll of parchment, inscribed with many magical glyphs.", '?', C_GREY);
|
|
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);
|
|
addocnoun(lastobjectclass, "wand");
|
|
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_RNDCHARGES, 1, 8, NA, NULL);
|
|
|
|
addoc(OC_POTION, "Potions", "A strange concoction contained within a small flask.", '!', C_GREY);
|
|
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);
|
|
addocnoun(lastobjectclass, "ring");
|
|
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_WEAPON, "Weapons", "An instrument used for the purpose of causing harm or death.", ')', C_GREY);
|
|
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);
|
|
addocnoun(lastobjectclass, "armour");
|
|
addocnoun(lastobjectclass, "clothing");
|
|
addocnoun(lastobjectclass, "clothes");
|
|
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);
|
|
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);
|
|
addocnoun(lastobjectclass, "plant");
|
|
addoc(OC_ROCK, "Rocks/Gems", "Boring (or not so boring) rocks or plants.", '*', C_GREY);
|
|
addoc(OC_FOOD, "Food", "Yum!", '%', C_GREY);
|
|
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);
|
|
addflag(lastobjectclass->flags, F_UNIQUE, NA, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, "pulsating purple stone");
|
|
addflag(lastobjectclass->flags, F_UNIQUE, NA, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_INVULNERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
|
|
addoc(OC_CORPSE, "Corpses", "Dead flesh which was once living.", '%', C_GREY);
|
|
addflag(lastobjectclass->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
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);
|
|
addocnoun(lastobjectclass, "technology");
|
|
addocnoun(lastobjectclass, "tech");
|
|
addflag(lastobjectclass->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addoc(OC_TOOLS, "Tools", "Useful items, from the common to the obscure.", ']', C_GREY);
|
|
addocnoun(lastobjectclass, "tool");
|
|
addflag(lastobjectclass->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addoc(OC_MISC, "Miscellaneous", "This could be anything.", '\\', C_GREY);
|
|
addoc(OC_EFFECT, "Environmental Effects", "Smoke, fire, etc.", '}', C_GREY);
|
|
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);
|
|
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);
|
|
addoc(OC_SPELL, "Spells", "A magical spell", '&', C_GREY); // this is a "virtual" object class
|
|
addoc(OC_ABILITY, "Abilities", "A special ability", '&', C_GREY); // this is a "virtual" object class
|
|
|
|
|
|
// 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_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);
|
|
|
|
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_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);
|
|
|
|
|
|
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_GLYPH, C_BLUE, NA, NA, "_");
|
|
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_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);
|
|
|
|
// 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, NA, "+");
|
|
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_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);
|
|
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_BROWN, NA, NA, "+");
|
|
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_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);
|
|
|
|
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_LOCKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 30, 30, NA, NULL);
|
|
addflag(lastot->flags, F_DTVULN, DT_CHOP, NA, NA, NULL);
|
|
|
|
addot(OT_BOULDER, "boulder", "A massive stone boulder.", MT_STONE, 80, OC_ROCK, SZ_HUGE);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, NA, "");
|
|
addflag(lastot->flags, F_GLYPH, NA, NA, NA, "'");
|
|
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");
|
|
|
|
|
|
addot(OT_ICICLE, "huge icicle", "A massive ice stalacmite.", MT_ICE, 200, OC_ROCK, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, C_CYAN, NA, NA, "'");
|
|
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);
|
|
|
|
addot(OT_STATUE, "statue", "A stone statue of a monster.", MT_STONE, 80, OC_ROCK, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 75, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_VILLAGE, 80, NA, "");
|
|
addflag(lastot->flags, F_GLYPH, NA, NA, NA, "'");
|
|
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_HOLEINGROUND, "hole in the ground", "A gaping hole in the ground.", MT_NOTHING, 0, OC_DFEATURE, SZ_LARGE);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_BLUE, NA, NA, "^");
|
|
addflag(lastot->flags, F_CLIMBABLE, D_DOWN, 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, NA, "<");
|
|
addflag(lastot->flags, F_CLIMBABLE, D_UP, 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_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_STAIRSDOWN, "staircase going down", "A stone staircase winding downwards.", MT_STONE, 3000, OC_DFEATURE, SZ_HUGE);
|
|
addflag(lastot->flags, F_GLYPH, NA, NA, NA, ">");
|
|
addflag(lastot->flags, F_CLIMBABLE, D_DOWN, NA, NA, NULL);
|
|
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, NA, "<");
|
|
addflag(lastot->flags, F_CLIMBABLE, D_UP, NA, NA, NULL);
|
|
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);
|
|
|
|
addot(OT_VENDINGMACHINE, "vending machine", "A gold-operated vending machine.", MT_METAL, 500, OC_DFEATURE, SZ_LARGE);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_RARE, "");
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, NA, NA, "_");
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, 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);
|
|
// 10 random objects
|
|
addflag(lastot->flags, F_STARTOBRND, 100, RANDOM, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 100, RANDOM, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 100, RANDOM, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 100, RANDOM, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 100, RANDOM, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 100, RANDOM, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 100, RANDOM, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 100, RANDOM, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 100, RANDOM, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 100, RANDOM, NA, NULL);
|
|
|
|
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, NA, "_");
|
|
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, NA, 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, NA, "_");
|
|
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, NA, 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_DFEATURE, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, C_BOLDGREEN, NA, NA, "^");
|
|
addflag(lastot->flags, F_CLIMBABLE, D_IN, 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_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_BOLDBLUE, NA, NA, "{");
|
|
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);
|
|
|
|
// 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, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 76, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, NA, NA, "^");
|
|
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, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 69, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, NA, NA, "^");
|
|
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, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 85, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, NA, NA, "^");
|
|
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, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 85, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, NA, NA, "^");
|
|
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_GLYPH, C_GREEN, NA, NA, "^");
|
|
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, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 90, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, NA, NA, "^");
|
|
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, NULL);
|
|
addflag(lastot->flags, F_TRAP, 23, B_TRUE, 25, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, NA, NA, "^");
|
|
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, NA, "^");
|
|
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 trap which sounds a loud siren.", MT_NOTHING, 0, OC_TRAP, SZ_SMALL);
|
|
addflag(lastot->flags, F_TRAP, 18, B_TRUE, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, NULL);
|
|
addflag(lastot->flags, F_OBJECTTRAP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, NA, NA, "^");
|
|
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_OBJECTTRAP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_MAGENTA, NA, NA, "^");
|
|
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, NA, NULL);
|
|
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, NA, "^");
|
|
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_GLYPH, C_GREY, NA, NA, "^");
|
|
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, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 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, NA, "^");
|
|
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_GLYPH, C_MAGENTA, NA, NA, "^");
|
|
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, NA, "");
|
|
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");
|
|
|
|
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, 100, NA, "");
|
|
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);
|
|
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, NA, ",");
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, "");
|
|
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");
|
|
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, NA, ",");
|
|
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, NA, "");
|
|
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");
|
|
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, NA, ",");
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, "");
|
|
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);
|
|
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, NA, ",");
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, "");
|
|
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");
|
|
addot(OT_GEMOFSEEING, "gem of seeing", "Magically enhances your eyesight.", MT_STONE, 1, OC_ROCK, SZ_TINY);
|
|
addflag(lastot->flags, F_HOLDCONFER, F_XRAYVIS, 2, 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, NA, NULL);
|
|
// godstones
|
|
addot(OT_GODSTONEJ, "Godstone of Justice", "An ancient artifact representing the power of justice.", MT_STONE, 3, OC_GODSTONE, SZ_SMALL);
|
|
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);
|
|
// 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, NA, "");
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_GLYPH, C_MAGENTA, NA, NA, ",");
|
|
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");
|
|
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, NA, "");
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, NA, NA, ",");
|
|
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");
|
|
addot(OT_MISTLETOE, "sprig of mistletoe", "A small cutting of mistletoe.", 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, NA, ",");
|
|
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);
|
|
addot(OT_SHRUB, "shrub", "A small but dense shrub.", MT_PLANT, 50, OC_FLORA, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, NA, "");
|
|
addflag(lastot->flags, F_GLYPH, C_GREEN, NA, NA, "%");
|
|
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);
|
|
addot(OT_STUMP, "tree stump", "A large tree stump.", MT_WOOD, 150, OC_FLORA, SZ_LARGE);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, NA, "");
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, NA, NA, "'");
|
|
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_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);
|
|
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, NA, "#");
|
|
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_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);
|
|
|
|
// food
|
|
addot(OT_BERRY, "berry", "Juicy, brightly coloured berries.", MT_FOOD, 0.1, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_ORANGE, NA, NA, "%");
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 8, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, NA, NULL);
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 15, NA, "");
|
|
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, NA, "%");
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 100, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 90, NA, 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, NA, "%");
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 5, 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_NUMAPPEAR, 1, 3, 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, NA, "%");
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 12, 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_NUMAPPEAR, 1, 12, NA, "");
|
|
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, NA, "%");
|
|
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, NA, NULL);
|
|
|
|
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, NA, "%");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, NULL);
|
|
addflag(lastot->flags, F_SLIPPERY, 15, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SLIPMOVE, 15, NA, NA, NULL);
|
|
|
|
addot(OT_APPLE, "apple", "A crunchy apple.", MT_FOOD, 0.5, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_GREEN, NA, NA, "%");
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 50, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, NA, NULL);
|
|
addot(OT_MUSHROOM, "mushroom", "A large brown mushroom.", MT_FOOD, 0.2, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 60, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 90, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, NA, NULL);
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 3, NA, "");
|
|
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, NA, "%");
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 100, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_FEELTEXT, NA, NA, NA, "some bread");
|
|
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, NA, "%");
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 85, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, NULL);
|
|
addot(OT_STEW, "stew", "Some kind of meat soaked in water.", MT_FOOD, 1.5, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, NA, NA, "%");
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 100, NA, "");
|
|
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, NA, "%");
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 100, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
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, NA, "%");
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 200, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_FEELTEXT, NA, NA, NA, "some bread");
|
|
addot(OT_CLOVER, "four leafed clover", "A rare 4-leafed clover.", MT_FOOD, 0.5, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_GREEN, NA, NA, "%");
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 5, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_HOLDCONFER, F_EXTRALUCK, 1, NA, NULL);
|
|
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, NA, "%");
|
|
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);
|
|
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, NA, "%");
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 250, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_RARE, 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
|
|
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
|
|
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, NA, "%");
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 25, NA, 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);
|
|
|
|
|
|
// potions (sorted by rarity)
|
|
addot(OT_POT_JUICE, "potion of fruit juice", "Tasty (but not very fresh) fruit juice!", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, 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_DUNGEON, 100, NA, NULL);
|
|
addflag(lastot->flags, F_AIHEALITEM, B_TRUE, 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_DUNGEON, 100, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_VILLAGE, 100, NA, NULL);
|
|
addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "small puddle of water");
|
|
modflag(lastot->flags, F_HASHIDDENNAME, NA, NA, NA, "clear potion");
|
|
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_DUNGEON, 90, NA, NULL);
|
|
addflag(lastot->flags, F_AIHEALITEM, B_TRUE, 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_DUNGEON, 72, NA, NULL);
|
|
addflag(lastot->flags, F_AIHEALITEM, B_TRUE, 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_DUNGEON, 83, NA, 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");
|
|
addot(OT_POT_COFFEE, "potion of coffee", "A caffeinated beverage prepared from coffee beans.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 83, NA, NULL);
|
|
addot(OT_POT_RUM, "potion of rum", "Strong liqour which is sure to make you tipsy.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 83, NA, NULL);
|
|
addflag(lastot->flags, F_FLAMMABLE, 1, NA, NA, "medium fire");
|
|
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);
|
|
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_DUNGEON, 75, 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_DUNGEON, 83, NA, NULL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BADOBJECT, B_TRUE, 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_DUNGEON, 75, NA, NULL);
|
|
addflag(lastot->flags, F_AIBOOSTITEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AIFLEEITEM, B_TRUE, 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_DUNGEON, 78, 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_DUNGEON, 75, NA, NULL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, 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_DUNGEON, 70, 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_DUNGEON, 70, NA, NULL);
|
|
addflag(lastot->flags, F_AIBOOSTITEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AIFLEEITEM, B_TRUE, 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_DUNGEON, 70, NA, NULL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BADOBJECT, B_TRUE, NA, NA, NULL);
|
|
addot(OT_POT_ACID, "flask of battery acid", "Causes massive internal burning if ingested.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, 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);
|
|
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_DUNGEON, 60, 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_DUNGEON, 60, NA, NULL);
|
|
addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "splash of blood");
|
|
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_DUNGEON, 60, 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_DUNGEON, 65, 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_DUNGEON, 40, NA, NULL);
|
|
addflag(lastot->flags, F_AIBOOSTITEM, B_TRUE, 40, 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_DUNGEON, 50, NA, NULL);
|
|
addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "splash of cockatrice blood");
|
|
|
|
addot(OT_POT_COMPETENCE, "potion of competence", "Permemantly increases the drinker's strength, intelligence or dexterity.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 50, NA, NULL);
|
|
|
|
addot(OT_POT_GASEOUSFORM, "potion of gaseous form", "Turns the drinker into a cloud of gas.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 50, NA, NULL);
|
|
addflag(lastot->flags, F_AIFLEEITEM, B_TRUE, 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_DUNGEON, 50, NA, NULL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, 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_DUNGEON, 40, NA, NULL);
|
|
addflag(lastot->flags, F_AIBOOSTITEM, B_TRUE, 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_DUNGEON, 35, NA, NULL);
|
|
addflag(lastot->flags, F_AIHEALITEM, B_TRUE, NA, NA, NULL);
|
|
|
|
|
|
|
|
|
|
// scrolls
|
|
|
|
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_RARITY, H_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
|
|
addot(OT_SCR_CANINETRACKING, "scroll of canine tracking", "Mimics the effects of a 'canine tracking' spell.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_CANINETRACKING, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_COMMON, 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_RARITY, H_DUNGEON, 100, RR_COMMON, 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_RARITY, H_DUNGEON, 100, RR_COMMON, 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_RARITY, H_DUNGEON, 98, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 4, NA, NA, NULL);
|
|
|
|
addot(OT_SCR_NOTHING, "scroll of nothing", "Looks like a magic scroll, but doesn't do anything.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 84, RR_UNCOMMON, NULL);
|
|
|
|
addot(OT_GRAPHPAPER, "piece of graph paper", "Paper containing a set of grid-lines, intended for mapping.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_HOLDCONFER, F_PHOTOMEM, NA, IFKNOWN, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
|
|
addot(OT_MAP, "map", "A visual representation of the area.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
|
|
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_DUNGEON, 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_DUNGEON, 100, RR_UNCOMMON, 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_DUNGEON, 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_DUNGEON, 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_DUNGEON, 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_DUNGEON, 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_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
|
|
addot(OT_SCR_ENCHANT, "scroll of enchantment", "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_RARITY, H_DUNGEON, 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_DUNGEON, 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_DUNGEON, 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_DUNGEON, 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_DUNGEON, 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_DUNGEON, 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_RARITY, H_DUNGEON, 50, RR_RARE, 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_DUNGEON, 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_DUNGEON, 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_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_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_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_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, 3, 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_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);
|
|
// l4
|
|
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, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
|
|
///////////////////
|
|
// death
|
|
///////////////////
|
|
// l1
|
|
addot(OT_S_STENCH, "stench", "Nauseates 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, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, 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_ENCHANTMENT, 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_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_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_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_ENCHANTMENT, NA, NA, NULL);
|
|
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_AICASTTOFLEE, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, 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_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, 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_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_NEED, NA, NULL);
|
|
addot(OT_S_DRAINLIFE, "drain life", "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_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_NEED, 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_ENCHANTMENT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, 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_WEAKEN, "weaken", "Temporarily lowers the target's muscle strength by ^bpower^n points.", 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_ENCHANTMENT, NA, NA, NULL);
|
|
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_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, 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_ENCHANTMENT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
// l5
|
|
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, 5, NA, NA, NULL);
|
|
// TODO: should be "castnearob ot_corpse"
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, 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_ENCHANTMENT, NA, NA, NULL);
|
|
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, 5, 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_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_LOSLOF, B_TRUE, LOF_DONTNEED, 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);
|
|
///////////////////
|
|
// 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, NA, NA, NA, "At Power III, the creature's species will be detected.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At Power V, the exact creature type will be detected.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, 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, NA, NA, NA, "Spell power determines the detection range.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, 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, NA, NA, NA, "At power I, you gain Novice level knowledge.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At power II, you gain Beginner level knowledge.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At power IV, you gain Adept level knowledge.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At power VI, you gain Skilled level knowledge.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At power VIII, you gain Expert level knowledge.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, 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_SPELLSCHOOL, SS_NATURE, 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);
|
|
|
|
///////////////////
|
|
// enchantment
|
|
///////////////////
|
|
// l7
|
|
addot(OT_S_ENCHANT, "enchantment", "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_ENCHANTMENT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL);
|
|
// TODO: hardcode how ai casts this spell
|
|
|
|
///////////////////
|
|
// elemental - air
|
|
///////////////////
|
|
// l1
|
|
addot(OT_S_MIST, "pea soup", "Hides the caster from view 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_AICASTTOFLEE, ST_ADJSELF, 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_MAXPOWER, 5, 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 1-^bpower^n 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, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_NEED, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJVICTIM, NA, NA, NULL);
|
|
|
|
// l2
|
|
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, NA, NA, NA, "The chance of each object blowing away is determined by the spell's power.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, 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_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_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_SPELLSCHOOL, SS_GRAVITY, 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_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);
|
|
// 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 to repel 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);
|
|
// 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_AICASTTOATTACK, ST_VICTIM, 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_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_NEED, NA, NULL);
|
|
///////////////////
|
|
// elemental - fire
|
|
///////////////////
|
|
// l1
|
|
addot(OT_S_SPARK, "spark", "Creates a tiny spark of flame, dealing 1-3 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_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, 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);
|
|
// l2
|
|
addot(OT_S_BLADEBURN, "bladeburn", "Ignites the target's bladed 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_SPELLSCHOOL, SS_ENCHANTMENT, 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_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_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_NEED, 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);
|
|
// 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 how long the flames will persist.");
|
|
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_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_WALLSTOP, 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_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);
|
|
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_SPELLSCHOOL, SS_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, 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);
|
|
///////////////////
|
|
// elemental - cold
|
|
///////////////////
|
|
// l1
|
|
addot(OT_S_CHILL, "chill", "Deals minor (1d3) cold damage to a single target.", 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_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_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_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);
|
|
addot(OT_S_ICEEDGE, "ice edge", "Enhances the edge of a bladed weapon with a layer of 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_ENCHANTMENT, 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_LOSLOF, B_TRUE, LOF_DONTNEED, 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);
|
|
// 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_MAXPOWER, 1, 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_MAXPOWER, 1, 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 1d3 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_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_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_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);
|
|
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, NA, NA, NA, "At power 1-3: one piece of armour is created.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At power 4-6: two pieces of armour are created.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At power 7-9: three pieces of armour are created.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, 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);
|
|
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_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_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);
|
|
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", "Removes rot or poison from food or drink.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ENCHANTMENT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addot(OT_S_STICKTOSNAKE, "sticks to snakes", "Transforms all seen wooden weapons into snakes.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
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_ENCHANTMENT, 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_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_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_LOSLOF, B_TRUE, LOF_DONTNEED, 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.", 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_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 object 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_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_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_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_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_ENCHANTMENT, NA, NA, NULL);
|
|
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_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_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_EVAPORATE, "evaporate", "Instantly converts all water in the given area into steam.", 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_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, 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_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 a burst 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 much webbing is created.");
|
|
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_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);
|
|
// 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);
|
|
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_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_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_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_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);
|
|
// 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_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
///////////////////
|
|
// gravity
|
|
///////////////////
|
|
// l1
|
|
addot(OT_S_TRUESTRIKE, "weapon attraction", "Gives the target unerring accuracy, making their attacks always hit.", 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_ENCHANTMENT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_GRAVITY, 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);
|
|
// l2
|
|
addot(OT_S_GRAVLOWER, "lessen gravity", "Causes the caster to fall very slowly.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_GRAVITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
// l3
|
|
addot(OT_S_SLOW, "slowness", "Decreases 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 the slowness will last.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ENCHANTMENT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_GRAVITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, 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_GRAVITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_ADJSELF, NA, NA, NULL);
|
|
// l4
|
|
addot(OT_S_GRAVBOOST, "boost gravity", "Greatly increases gravity around the target, stopping 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_GRAVITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, 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_ENCHANTMENT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_GRAVITY, 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
|
|
// l6
|
|
addot(OT_S_FLIGHT, "fly", "Allows the caster to fly.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ENCHANTMENT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_GRAVITY, 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_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_GRAVITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
///////////////////
|
|
// life / 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_AICASTTOFLEE, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, 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);
|
|
// l2
|
|
addot(OT_S_SPEAKDEAD, "speak with dead", "Temporarily allow a corpse to answer questions about its former life.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
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_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
// l3
|
|
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_AICASTTOFLEE, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_HOLYAURA, "holy aura", "Surrounds the target with a holy aura, causing their weapon to deal holy damage.", 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);
|
|
// l4
|
|
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_AICASTTOFLEE, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, 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_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
///////////////////
|
|
// mental/psionic
|
|
///////////////////
|
|
// l1
|
|
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_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_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
// l2
|
|
addot(OT_S_DISORIENT, "disorient", "Spins the target around to face a different direction. This will sometimes also make them dizzy.", 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_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_SPELLLEVEL, 2, 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_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_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_SPELLSCHOOL, SS_ENCHANTMENT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, 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_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_ENCHANTMENT, 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_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_ENCHANTMENT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MENTAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SPECIAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
///////////////////
|
|
// modification
|
|
///////////////////
|
|
// l1
|
|
addot(OT_S_HOLDPORTAL, "seal entrance", "Prevents a door from opening.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ENCHANTMENT, 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_LOSLOF, B_TRUE, LOF_DONTNEED, 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 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);
|
|
// l2
|
|
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_ENCHANTMENT, NA, NA, NULL);
|
|
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_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_SPELLSCHOOL, SS_ENCHANTMENT, 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_ENCHANTMENT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_TRANSLOCATION, NA, NA, NULL);
|
|
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);
|
|
// 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_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
// l6
|
|
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_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 polymorph other creatures.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At power VIII, you can choose what kind of creature to polymorph into.");
|
|
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_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. Deals 1-^bpower^n damage.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
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);
|
|
// l2
|
|
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, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
// l5
|
|
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_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
// l2
|
|
addot(OT_S_BLINK, "blink", "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 blink 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, "suck", "Sucks 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_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_WALLSTOP, 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_MAXPOWER, 1, 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_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_LOSLOF, B_FALSE, 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_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);
|
|
// l5
|
|
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, 5, NA, 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_MANASPIKE, "mana spike", "Fires a small bolt of wild magic, dealing 1d2 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_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_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);
|
|
// 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_AICASTTOATTACK, ST_VICTIM, NA, 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", "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);
|
|
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);
|
|
addot(OT_S_CONFISCATE, "confiscate", "Takes any object from the target.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DIVINE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, 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_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_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_COOK, "cook", "Combine food and water into a healthy meals.", 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, "disarm", "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_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_FLURRY, "flurry", "Perform a flurry of attacks, forcing your opponent backwards.", 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_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);
|
|
addflag(lastot->flags, F_XPVAL, 10, 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", "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_STAMCOST, 3, 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_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_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_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.", 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_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_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_TRAIN, "train skills", "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);
|
|
addot(OT_SPELLBOOK, "spellbook", "Teaches you the spell contained within.", MT_PAPER, 1.5, OC_BOOK, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_RARE, NULL);
|
|
|
|
// wands
|
|
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_DUNGEON, 80, 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_DUNGEON, 83, 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_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_DUNGEON, 80, 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_DUNGEON, 80, 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_DUNGEON, 80, 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_DUNGEON, 73, 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_DUNGEON, 73, 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_DUNGEON, 70, 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_DUNGEON, 70, 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_DUNGEON, 70, 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_DUNGEON, 65, 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_DUNGEON, 65, 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_DUNGEON, 65, 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_DUNGEON, 60, 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_DUNGEON, 60, 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_DUNGEON, 72, 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, NA, "[");
|
|
addflag(lastot->flags, F_UNIQUE, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_INVULNERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, 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_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_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, 20, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 60, NA, 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, NA, "^");
|
|
addflag(lastot->flags, F_SHARP, 2, 5, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 75, 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, NA, "!");
|
|
addflag(lastot->flags, F_PRODUCESLIGHT, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HOLDCONFER, F_PRODUCESLIGHT, 2, 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_DUNGEON, 90, 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, 1, NA, NULL);
|
|
addflag(lastot->flags, F_PRODUCESLIGHT, 1, NA, IFACTIVE, NULL);
|
|
addflag(lastot->flags, F_RNDCHARGES, 50, 100, 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_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_COMMON, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_WHITE, NA, 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, 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, NA, ",");
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 65, 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_DUNGEON, 70, 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, 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_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");
|
|
|
|
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_DUNGEON, 55, 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_RNDCHARGES, 300, 500, 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");
|
|
|
|
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_DUNGEON, 75, NA, NULL);
|
|
addflag(lastot->flags, F_PICKLOCKS, 10, B_DIEONFAIL, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, 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, 60, 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, 65, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_ROPE, "rope", "A long length of strong rope.", MT_CLOTH, 5, OC_TOOLS, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 75, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 75, NA, NULL);
|
|
addflag(lastot->flags, F_HELPSCLIMB, 3, 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_GLYPH, C_YELLOW, NA, 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, 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);
|
|
|
|
addot(OT_SACKLARGE, "large sack", "A large cloth sack.", MT_CLOTH, 1, OC_TOOLS, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_GLYPH, C_YELLOW, NA, 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, 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);
|
|
|
|
addot(OT_SACKHUGE, "huge sack", "An enormous cloth sack.", MT_CLOTH, 1, OC_TOOLS, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, C_YELLOW, NA, 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, 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);
|
|
|
|
|
|
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_GLYPH, C_YELLOW, NA, NA, "(");
|
|
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");
|
|
|
|
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_GLYPH, C_YELLOW, NA, NA, "(");
|
|
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");
|
|
|
|
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_GLYPH, C_YELLOW, NA, NA, "(");
|
|
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");
|
|
|
|
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_GLYPH, C_YELLOW, NA, 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, 15, 15, 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_CANBETRAPPED, 20, 25, 66, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, 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_DUNGEON, 85, 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, 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, NA, NA, "1d4");
|
|
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");
|
|
|
|
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_DUNGEON, 73, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, 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_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, NULL);
|
|
addflag(lastot->flags, F_PICKLOCKS, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, 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_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, NULL);
|
|
addflag(lastot->flags, F_PICKLOCKS, 4, B_DIEONFAIL, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
// can use as a (very bad) weapon too...
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, NA, NA, "1d1");
|
|
addflag(lastot->flags, F_ACCURACY, 50, NA, NA, NULL);
|
|
|
|
addot(OT_SLEEPINGBAG, "sleeping bag", "An insulated bag for sleeping in. Very comfortable.", MT_CLOTH, 4, OC_TECH, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 70, NA, NULL);
|
|
addflag(lastot->flags, F_HELPSREST, 15, NA, NA, NULL);
|
|
|
|
// tech - l1
|
|
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_DUNGEON, 90, 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_DUNGEON, 85, 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_DUNGEON, 85, RR_UNCOMMON, 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);
|
|
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_DUNGEON, 75, RR_UNCOMMON, 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, 2, NA, NULL);
|
|
addflag(lastot->flags, F_PRODUCESLIGHT, 2, NA, IFACTIVE, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_NOVICE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, 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, 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_NOVICE, NA, NA, NULL);
|
|
|
|
// tech - l2
|
|
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_DUNGEON, 90, RR_UNCOMMON, 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_DUNGEON, 80, RR_UNCOMMON, 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, NA, B_IFACTIVATED, "8d2");
|
|
addflag(lastot->flags, F_EXPLODEONDAM, NA, NA, B_IFACTIVATED, "5d2");
|
|
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_DUNGEON, 76, RR_UNCOMMON, 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, B_BIG, 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_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_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_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_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_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);
|
|
|
|
|
|
// 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_DUNGEON, 70, RR_RARE, 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_DUNGEON, 78, RR_UNCOMMON, 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_DUNGEON, 83, RR_UNCOMMON, 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_DUNGEON, 68, 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_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, 1, NA, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_SKILLED, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, 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_DUNGEON, 68, RR_UNCOMMON, 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_GOESON, BP_EYES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_XRAYVIS, 2, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 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, NA, ",");
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addot(OT_CHEST, "chest", "A small wooden 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, 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, 6, 6, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, 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, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 70, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 60, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, NA, 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, NA, "!");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 90, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, 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, NA, "!");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 82, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, 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, NA, "^");
|
|
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_DUNGEON, 65, NA, NULL);
|
|
addflag(lastot->flags, F_NOSHATTER, B_TRUE, 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, NA, "_");
|
|
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);
|
|
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, NA, ",");
|
|
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);
|
|
|
|
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, NA, ",");
|
|
addflag(lastot->flags, F_NOMATCONVERT, B_TRUE, NA, 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_STACKABLE, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, NA, NA, NA, "?");
|
|
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_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREEN, NA, NA, ",");
|
|
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);
|
|
|
|
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, NA, "~");
|
|
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);
|
|
|
|
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, NA, "~");
|
|
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);
|
|
|
|
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, NA, ",");
|
|
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);
|
|
|
|
addot(OT_SLIMEPOOL, "pool of slime", "A disgusting mass of sticky slime.", 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, NA, NA, NA, ",");
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 2, 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, NA, ","); // should really be dark grey
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 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");
|
|
|
|
// 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, NA, ",");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 75, 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_DTVULN, DT_FIRE, NA, NA, "0d1+100");
|
|
addflag(lastot->flags, F_LINKOB, OT_POT_WATER, 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, NA, "~");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 75, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 90, 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");
|
|
|
|
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, NA, ",");
|
|
addflag(lastot->flags, F_RARITY, H_VILLAGE, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 75, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 90, 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_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_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");
|
|
|
|
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, NA, "~");
|
|
addflag(lastot->flags, F_RARITY, H_VILLAGE, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 85, 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_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, NA, ",");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 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);
|
|
|
|
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, NA, ",");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 50, 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_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);
|
|
|
|
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, NA, ",");
|
|
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_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, 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_LINKOB, OT_POT_BLOOD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_COSMETIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, 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, NA, "~");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 65, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SLIPPERY, 3, 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, 45, 45, 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);
|
|
|
|
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, NA, "|");
|
|
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_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, NA, "\\");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 85, 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_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_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_RARE, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, NA, NA, "|");
|
|
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, "3-4 piles of ash");
|
|
addflag(lastot->flags, F_STARTOB, 80, 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, "fireplace", "A roaring fireplace.", MT_STONE, 200, OC_FURNITURE, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, C_RED, NA, NA, "\\");
|
|
addflag(lastot->flags, F_PRODUCESLIGHT, 3, 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_IMPASSABLE, SZ_MIN, SZ_MAX, NA, NULL);
|
|
|
|
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_RARE, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, NA, NA, "\\");
|
|
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_VILLAGE, 75, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, NA, NA, NA, "(");
|
|
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);
|
|
|
|
addot(OT_WOODENTABLE, "wooden table", "A waist-height wooden table.", MT_WOOD, 25, OC_FURNITURE, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 70, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, NA, NA, "\\");
|
|
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);
|
|
|
|
addot(OT_WOODENSTOOL, "wooden footstool", "A small, wooden footstool.", MT_WOOD, 5, OC_FURNITURE, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 83, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, NA, NA, 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, 4, 4, NA, NULL);
|
|
addflag(lastot->flags, F_DTVULN, DT_CHOP, NA, 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, NA, NA, "}");
|
|
addflag(lastot->flags, F_NODIECONVERTTEXT, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DIECONVERT, NA, 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);
|
|
|
|
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, NA, NA, "}");
|
|
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, NA, "{");
|
|
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, "2d4+4");
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PRODUCESLIGHT, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
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, NA, "{");
|
|
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, "2d4");
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PRODUCESLIGHT, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
addot(OT_FIRESMALL, "small fire", "A small blaze.", MT_FIRE, 0, OC_EFFECT, SZ_SMALL);
|
|
addflag(lastot->flags, F_GLYPH, C_RED, NA, NA, "{");
|
|
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, "1d4");
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PRODUCESLIGHT, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
|
|
addot(OT_STEAMCLOUD, "cloud of steam", "A thick cloud of scalding steam.", MT_GAS, 0, OC_EFFECT, SZ_HUMAN);
|
|
addflag(lastot->flags, F_GLYPH, NA, NA, NA, "}");
|
|
addflag(lastot->flags, F_NODIECONVERTTEXT, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DIECONVERT, NA, 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, "1d2");
|
|
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_GREY, NA, NA, "}");
|
|
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, "1d1+1");
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
|
|
|
|
addot(OT_SLEETSTORM, "storm of sleet", "An intense storm of sleet. Hampers movement", MT_GAS, 0, OC_EFFECT, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, C_CYAN, NA, NA, "}");
|
|
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_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, NA, NA, "}");
|
|
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, NA, NA, NA, "}");
|
|
addflag(lastot->flags, F_NODIECONVERTTEXT, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DIECONVERT, NA, 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, 26, 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, NA, NA, NA, "}");
|
|
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, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, ".");
|
|
addflag(lastot->flags, F_CAUSESCOUGH, 18, 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, NA, NA, "}");
|
|
addflag(lastot->flags, F_DIECONVERTTEXT, NA, NA, NA, "thins out a little");
|
|
addflag(lastot->flags, F_DIECONVERT, NA, 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, NA, NA, "}");
|
|
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_WALKDAM, DT_POISONGAS, NA, NA, "1d2");
|
|
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_WHITE, NA, NA, "}");
|
|
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, "1d4");
|
|
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_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, NA, "#");
|
|
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, NA, NA, "#");
|
|
addflag(lastot->flags, F_IMPASSABLE, SZ_MIN, SZ_MAX, NA, NULL);
|
|
addflag(lastot->flags, F_REALLYIMPASSABLE, NA, 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, 1, NA, NA, NULL);
|
|
|
|
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, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 90, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREEN, NA, NA, "^");
|
|
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, NA, "^");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 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, "!");
|
|
|
|
|
|
// armour - body
|
|
addot(OT_COTTONSHIRT, "cotton shirt", "A comfortable white cotton shirt.", MT_CLOTH, 0.7, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_UNCOMMON, 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, 3, 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_DUNGEON, 100, RR_COMMON, 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, 20, 20, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 3, 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_DUNGEON, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_BODY, 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, 7, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 30, 30, 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_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_BODY, 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, 9, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 35, 35, 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_DUNGEON, 100, RR_UNCOMMON, 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, 9, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 45, 45, 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_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_BODY, 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, 11, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 50, 50, 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_DUNGEON, 90, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_BODY, 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, 13, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 60, 60, 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_DUNGEON, 100, RR_RARE, 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, 10, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 3, 3, 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_DUNGEON, 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_ATTREQ, A_AGI, 7, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 10, 10, 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_DUNGEON, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_UNCOMMON, 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, 5, 5, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 3, NA, NULL);
|
|
addot(OT_ROBE, "robe", "A plain robe.", MT_CLOTH, 4, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_COMMON, 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, 10, 10, NA, NULL);
|
|
addot(OT_VELVETROBE, "velvet robe", "A luxurious velvet robe.", MT_CLOTH, 4, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 90, RR_UNCOMMON, 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, 10, 10, NA, NULL);
|
|
// armour - shoulders
|
|
addot(OT_CLOAK, "cloak", "A standard leather cloak.", MT_LEATHER, 4, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_UNCOMMON, 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, 10, 10, NA, NULL);
|
|
addflag(lastot->flags, F_WATERPROOF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HELPSREST, 5, 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_DUNGEON, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_WAIST, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 3, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 2, 2, 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_RARITY, H_DUNGEON, 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, 10, 10, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 3, NA, NULL);
|
|
addot(OT_RIDINGTROUSERS, "pair of riding trousers", "A fitted pair of leather trousers.", MT_LEATHER, 2, OC_ARMOUR, SZ_MEDIUM);
|
|
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_GOESON, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 15, 15, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 3, 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_DUNGEON, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 15, 15, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 3, 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_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 25, 25, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_ARMOURPENALTY, 15, 15, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 9, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 3, 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_DUNGEON, 100, RR_COMMON, 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, 1, 1, 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_DUNGEON, 100, RR_COMMON, 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, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 3, 3, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 7, 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_DUNGEON, 100, RR_UNCOMMON, 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, 10, 10, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_DTRESIST, DT_ELECTRIC, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 3, 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_DUNGEON, 100, RR_RARE, 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, 10, 10, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_STABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 7, 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_DUNGEON, 100, RR_COMMON, 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, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 10, 10, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 7, 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_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_RARE, 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, 20, 20, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 7, 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_DUNGEON, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_COMMON, 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, 5, 5, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 3, 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_DUNGEON, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_HANDS, 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_ATTREQ, A_AGI, 3, 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_DUNGEON, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_HANDS, 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, 15, 15, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 3, 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_DUNGEON, 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, 3, 3, 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_DUNGEON, 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, 2, 2, NA, NULL);
|
|
addflag(lastot->flags, F_SCARY, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, 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_DUNGEON, 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, 3, 3, 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_METAL, 3.5, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 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, 10, 10, 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);
|
|
addot(OT_HELM, "helmet", "A plain metal helmet.", MT_METAL, 2, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 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, 20, 20, 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_DUNGEON, 100, RR_COMMON, 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, 20, 20, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_VISRANGEMOD, -1, 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_DUNGEON, 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, 10, 10, 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_DUNGEON, 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, 15, 15, NA, NULL);
|
|
addflag(lastot->flags, F_SCARY, 4, 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_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_EARS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 1, 1, 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_DUNGEON, 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, 10, 10, NA, NULL);
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
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_DUNGEON, 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, 2, 2, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_VISRANGEMOD, 1, NA, NULL);
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
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_DUNGEON, 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, 2, 2, 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);
|
|
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_DUNGEON, 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);
|
|
|
|
|
|
// 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_DUNGEON, 100, RR_COMMON, 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, 5, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 20, 20, 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_DUNGEON, 100, RR_COMMON, 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, 5, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 18, 18, 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_DUNGEON, 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, 15, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 30, 30, 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_DUNGEON, 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);
|
|
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_DUNGEON, 100, RR_RARE, 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, 30, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 50, 50, NA, NULL);
|
|
|
|
// rings
|
|
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, NA, "");
|
|
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);
|
|
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, NA, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_EXTRAMP, 10, 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, NA, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_EXTRALUCK, 5, 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, NA, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_DTIMMUNE, DT_FIRE, 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, NA, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_DTIMMUNE, DT_COLD, 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, NA, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_ATTRMOD, A_STR, 1, NULL); // '1' is randomized during generation
|
|
addflag(lastot->flags, F_IDWHENUSED, B_TRUE, 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, NA, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_ATTRMOD, A_IQ, 1, NULL); // '1' is randomized during generation
|
|
addflag(lastot->flags, F_IDWHENUSED, B_TRUE, 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, NA, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_ATTRMOD, A_CON, 1, NULL); // '1' is randomized during generation
|
|
addflag(lastot->flags, F_IDWHENUSED, B_TRUE, NA, NA, NULL);
|
|
addot(OT_RING_DEX, "ring of dexterity", "Increases the wearer's dexterity.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 70, NA, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_ATTRMOD, A_AGI, 1, NULL); // '1' is randomized during generation
|
|
addflag(lastot->flags, F_IDWHENUSED, B_TRUE, 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, NA, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_FASTMETAB, 3, NA, NULL);
|
|
addflag(lastot->flags, F_STARTBLESSED, B_CURSED, 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, NA, "");
|
|
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);
|
|
addot(OT_RING_INVIS, "ring of invisibility", "Renders the wearer invisible.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 60, NA, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_INVISIBLE, 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);
|
|
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, 50, NA, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_MPREGEN, 1, 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, 50, NA, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CONTROL, 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, 50, NA, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_REGENERATES, 1, NA, NULL);
|
|
addot(OT_RING_RESISTMAG, "ring of magic resistance", "Renders the wearer immune to most magical effects.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 50, NA, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_RESISTMAG, 5, 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, 40, NA, "");
|
|
addflag(lastot->flags, F_CHARGES, 1, 3, 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_UNARMED, NA, NA, "1d2");
|
|
addflag(lastot->flags, F_ACCURACY, 100, NA, 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);
|
|
|
|
// this one is for the pirate
|
|
addot(OT_HOOKHAND, "hook", "hook", MT_METAL, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, NA, NA, "1d4");
|
|
addflag(lastot->flags, F_ACCURACY, 100, NA, 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, 5, NA, "scratch");
|
|
addflag(lastot->flags, F_ATTACKVERB, 6, 15, NA, "scrape");
|
|
addflag(lastot->flags, F_ATTACKVERB, 16, NA, NA, "rake");
|
|
|
|
|
|
addot(OT_TEETH, "teeth", "teeth object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_BITE, NA, NA, "1d2");
|
|
addflag(lastot->flags, F_ACCURACY, 100, NA, 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_CLAWS, "claws", "claws object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, NA, NA, "1d2");
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, 5, NA, "scratch");
|
|
addflag(lastot->flags, F_ATTACKVERB, 6, 15, NA, "claw");
|
|
addflag(lastot->flags, F_ATTACKVERB, 16, 30, NA, "tear");
|
|
addflag(lastot->flags, F_ATTACKVERB, 31, 40, NA, "rake");
|
|
addflag(lastot->flags, F_ATTACKVERB, 41, 50, NA, "gouge");
|
|
addflag(lastot->flags, F_ATTACKVERB, 51, NA, NA, "shred");
|
|
addflag(lastot->flags, F_KILLVERB, 70, NA, NA, "disembowel");
|
|
addflag(lastot->flags, F_ACCURACY, 100, 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_HOOF, "hooves", "hoof object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, NA, NA, "1d2");
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, NA, NA, "kick");
|
|
addflag(lastot->flags, F_ACCURACY, 100, 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, NA, NA, "1d2");
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, NA, NA, "butt");
|
|
addflag(lastot->flags, F_ACCURACY, 100, 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_STING, "sting", "sting object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, NA, NA, "sting");
|
|
addflag(lastot->flags, F_DAM, DT_ACID, NA, NA, "1d2");
|
|
addflag(lastot->flags, F_ACCURACY, 100, 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_TAIL, "tail", "tail object", MT_FLESH, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, NA, NA, "tailslap");
|
|
addflag(lastot->flags, F_DAM, DT_BASH, NA, NA, "1d4");
|
|
addflag(lastot->flags, F_ACCURACY, 80, 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_TENTACLE, "tentacle", "tentacle object", MT_FLESH, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, NA, NA, "2d6");
|
|
addflag(lastot->flags, F_ACCURACY, 100, 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_ZAPPER, "zapper", "zapper object", MT_NOTHING, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_ELECTRIC, NA, NA, "1d2");
|
|
addflag(lastot->flags, F_ACCURACY, 100, 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);
|
|
|
|
// monster weapons
|
|
addot(OT_ACIDATTACK, "acidattack", "acid attack object", MT_WATER, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_ACID, NA, NA, "1d2");
|
|
addflag(lastot->flags, F_ACCURACY, 60, 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_TOUCHPARALYZE, "paralyzing touch", "paralyzing touch object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_ARMOURPIERCE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_DAM, DT_TOUCH, NA, NA, "1d1");
|
|
addflag(lastot->flags, F_ACCURACY, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HITCONFER, F_PARALYZED, SC_CON, 22, "2-4");
|
|
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, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_DAM, DT_TOUCH, NA, NA, "1d1");
|
|
addflag(lastot->flags, F_ACCURACY, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HITCONFER, F_PARALYZED, SC_CON, 30, "5-10");
|
|
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);
|
|
|
|
// 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, 1, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 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, 1, NA, NA, "");
|
|
addflag(lastot->flags, F_ARMOURPIERCE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 67, NA, "");
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 10, NA, "");
|
|
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, 0, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, NULL);
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 4, NA, NULL);
|
|
addflag(lastot->flags, F_HITCONFER, F_ASLEEP, SC_CON, 27, "20-30");
|
|
addflag(lastot->flags, F_HITCONFERVALS, B_TRUE, ST_ASLEEP, NA, 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, 1, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, "");
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 3, NA, "");
|
|
addflag(lastot->flags, F_CANHAVEOBMOD, OM_POISONED, 25, NA, NULL);
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_JAVELIN, "javelin", "A long, sharp missile weapon.", MT_METAL, 6, 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, 3, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 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_ARROW, "arrow", "A sharp wooden arrow.", MT_WOOD, 0.25, 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_NUMAPPEAR, 1, 10, NA, "");
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
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_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBEDIFFMAT, MT_SILVER, 15, NA, NULL);
|
|
|
|
addot(OT_BOLT, "bolt", "A sharp metal spike, meant for firing from a crossbow.", MT_METAL, 0.5, 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_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, 70, NA, "");
|
|
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_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, 80, NA, "");
|
|
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_NOOBDIETEXT, B_TRUE, NA, NA, NULL);
|
|
|
|
|
|
// 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_DAM, DT_CHOP, NA, NA, "1d6");
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_AXES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 9, NA, NULL);
|
|
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_DAM, DT_CHOP, NA, NA, "1d8+1");
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_AXES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 13, NA, NULL);
|
|
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_OBATTACKDELAY, 180, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_CHOP, NA, NA, "1d9+1");
|
|
addflag(lastot->flags, F_TWOHANDED, B_TRUE, 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, 16, NA, NULL);
|
|
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_DAM, DT_CHOP, NA, NA, "1d7");
|
|
addflag(lastot->flags, F_ACCURACY, 85, 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, 7, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, 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_DAM, DT_CHOP, NA, NA, "1d7+1");
|
|
addflag(lastot->flags, F_ACCURACY, 85, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_AXES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 11, 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_DAM, DT_PIERCE, NA, NA, "1d4+1");
|
|
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_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_DAM, DT_PIERCE, NA, NA, "1d4");
|
|
addflag(lastot->flags, F_ACCURACY, 100, 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);
|
|
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_DAM, DT_PIERCE, NA, NA, "1d2");
|
|
addflag(lastot->flags, F_ACCURACY, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 2, 2, NA, NULL);
|
|
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_DAM, DT_SLASH, NA, NA, "1d3");
|
|
addflag(lastot->flags, F_ACCURACY, 100, 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);
|
|
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_SHINY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, NA, NA, "1d3");
|
|
addflag(lastot->flags, F_ACCURACY, 100, 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);
|
|
addot(OT_QUICKBLADE, "quickblade", "A short blade of exceptional quality, which somehow allows its bearer to attack faster.", MT_METAL, 3.0, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 73, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 75, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, NA, NA, "1d4");
|
|
addflag(lastot->flags, F_ACCURACY, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_SHORTBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 2, NA, NA, NULL);
|
|
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_DAM, DT_PIERCE, NA, NA, "1d8");
|
|
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, 6, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 3, 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_DAM, DT_PIERCE, NA, NA, "1d4");
|
|
addflag(lastot->flags, F_DISARMATTACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_SHORTBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 10, NA, NULL);
|
|
addot(OT_SHORTSWORD, "short sword", "A short blade for fighting. Better for stabbing.", MT_METAL, 4, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 90, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, NA, NA, "1d6");
|
|
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, 6, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, 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_DAM, DT_SLASH, NA, NA, "1d6");
|
|
addflag(lastot->flags, F_ACCURACY, 60, 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_DAM, DT_SLASH, NA, NA, "1d2");
|
|
addflag(lastot->flags, F_ACCURACY, 100, 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, 5, 5, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_SHORTBLADES, NA, NA, NULL);
|
|
|
|
// long blades
|
|
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_DAM, DT_CHOP, NA, NA, "1d8+3");
|
|
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, 13, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
addot(OT_GREATSWORD, "greatsword", "A massive two-handed sword.", MT_METAL, 10, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 55, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 180, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, NA, NA, "1d12+6");
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_LONGBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 13, NA, NULL);
|
|
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_DAM, DT_SLASH, NA, NA, "1d8");
|
|
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, 10, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBEDIFFMAT, MT_SILVER, 5, 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_SHINY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, NA, NA, "1d6");
|
|
addflag(lastot->flags, F_ACCURACY, 70, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_LONGBLADES, NA, NA, NULL);
|
|
addot(OT_SCIMITAR, "scimitar", "A fast, sharp, curved blade.", MT_METAL, 5, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 75, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 90, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, NA, NA, "1d7");
|
|
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, 8, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 7, 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_DAM, DT_SLASH, NA, NA, "1d7");
|
|
addflag(lastot->flags, F_ACCURACY, 90, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_LONGBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 8, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, 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_OBATTACKDELAY, 150, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, NA, NA, "1d7+3");
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_POLEARMS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 13, NA, NULL);
|
|
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_TRIPATTACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 130, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, NA, NA, "2d4");
|
|
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, 13, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 7, NA, NULL);
|
|
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_OBATTACKDELAY, 130, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TRIPATTACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_CHOP, NA, NA, "1d9+2");
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_POLEARMS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 13, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 9, NA, NULL);
|
|
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_TWOHANDED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 140, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, NA, NA, "1d8+2");
|
|
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, 13, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 1, NA, NA, NULL);
|
|
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_DISARMATTACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 120, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, NA, NA, "2d4");
|
|
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, 13, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 9, NA, NULL);
|
|
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_OBATTACKDELAY, 150, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, NA, NA, "2d4");
|
|
addflag(lastot->flags, F_ACCURACY, 65, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_POLEARMS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 9, NA, NULL);
|
|
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_TWOHANDED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 140, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, NA, NA, "1d8");
|
|
addflag(lastot->flags, F_ACCURACY, 75, 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_STR, 7, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 1, 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_DAM, DT_PIERCE, NA, NA, "1d10");
|
|
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_STR, 7, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, 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_DAM, DT_BASH, NA, NA, "1d8");
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 110, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_STAVES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 7, NA, NULL);
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, 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_DAM, DT_BASH, NA, NA, "2d4");
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_STAVES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 6, NA, NULL);
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, 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_OBATTACKDELAY, 110, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, NA, NA, "2d4+3");
|
|
addflag(lastot->flags, F_ACCURACY, 75, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_STAVES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 7, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 9, NA, NULL);
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, 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_OBATTACKDELAY, 110, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, NA, NA, "3d4+1");
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_STAVES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 9, NA, NULL);
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 8, 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_DAM, DT_BASH, NA, NA, "1d6");
|
|
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, 7, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
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, 75, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, NA, NA, "2d4");
|
|
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, 9, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
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, 75, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 115, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, NA, NA, "2d6");
|
|
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, 13, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 8, NA, 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_OBATTACKDELAY, 220, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, NA, NA, "1d10+5");
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_CLUBS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 16, NA, NULL);
|
|
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_DAM, DT_BASH, NA, NA, "1d7+1");
|
|
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, 9, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 7, NA, NA, NULL);
|
|
addot(OT_MORNINGSTAR, "morningstar", "A heavy, spiked mace.", MT_METAL, 12, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 150, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, NA, NA, "1d9+3");
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_CLUBS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 13, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 8, NA, NA, NULL);
|
|
addot(OT_NUNCHAKU, "nunchaku", "Two stout sticks connected with a short or rope. 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_DISARMATTACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, NA, NA, "1d6+1");
|
|
addflag(lastot->flags, F_ACCURACY, 75, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_CLUBS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 10, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 3, 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, NA, NA, "1d4");
|
|
addflag(lastot->flags, F_ACCURACY, 65, 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_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_DAM, DT_BASH, NA, NA, "1d4+1");
|
|
addflag(lastot->flags, F_ACCURACY, 90, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_CLUBS, 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_FOREST, 100, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, NA, NA, "1d2");
|
|
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);
|
|
|
|
// projectile weapons
|
|
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, 75, NA, 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, 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_FIRETURNS, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RELOADTURNS, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 9, NA, NULL);
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_CROSSBOW, "crossbow", "A standard crossbow. Very powerful, but needs high strength to use.", MT_WOOD, 8, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 75, NA, 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, 12, 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_BOLT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOCAPACITY, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_FIRETURNS, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RELOADTURNS, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 13, NA, NULL);
|
|
|
|
addot(OT_CROSSBOWHAND, "hand crossbow", "A small one-handed crossbow. Lightweight, but less powerful than a full-sized one.", MT_WOOD, 3, OC_WEAPON, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 75, NA, 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, 75, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 10, 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_FIRETURNS, 1, 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, 75, NA, 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, 12, 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_ARROW, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOCAPACITY, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_FIRETURNS, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RELOADTURNS, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 13, NA, NULL);
|
|
|
|
addot(OT_REVOLVER, "revolver", "Basic one-handed firearm.", MT_METAL, 1, OC_WEAPON, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 60, NA, 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, 20, 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_FIRETURNS, 1, 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, 60, NA, 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, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_FIRESPEED, 30, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 3, 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_FIRETURNS, 1, 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, 80, NA, 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, 70, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 5, 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_FIRETURNS, 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, NA, NA, "1d4"); // 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, NA, NA, "1d6+100");
|
|
addflag(lastot->flags, F_ACCURACY, 500, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNIQUE, 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_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);
|
|
}
|
|
|
|
void initrace(void) {
|
|
race_t *r;
|
|
flag_t *f;
|
|
objecttype_t *ot;
|
|
// 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_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_SLIME, "slime", "slimes", SK_NONE);
|
|
addraceclass(RC_UNDEAD, "undead", "the undead", SK_LORE_UNDEAD);
|
|
|
|
// unique monsters
|
|
addrace(R_JAILER, "jailer", 110, '@', C_MAGENTA, MT_FLESH, RC_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, NA, NA, NA, "2d4+20");
|
|
//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, NA, NA, "1d4");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, NA, NA, "11-13");
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, 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, NA, NA, NULL); // stay in our maze
|
|
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, "dungeon exit orb");
|
|
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);
|
|
|
|
// races / monsters
|
|
// playable races
|
|
addrace(R_HUMAN, "human", 75, '@', C_GREY, MT_FLESH, RC_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, NA, NA, NA, "2d4+2");
|
|
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, NA, NA, "1d2");
|
|
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);
|
|
|
|
addrace(R_AVIAD, "aviad", 60, 'h', C_WHITE, MT_FLESH, RC_HUMANOID);
|
|
// 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
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d4");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, "pw:1;");
|
|
// penalties
|
|
addflag(lastrace->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_ELECTRIC, NA, NA, NULL);
|
|
// other special stuff
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "screechs^a screech");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_HANDS, NA, NA, "talons");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right claw");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left claw");
|
|
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, NA, NA, NA, "1d4+3");
|
|
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);
|
|
|
|
addrace(R_CYBORG, "cyborg", 150, 'R', C_GREY, MT_FLESH, RC_HUMANOID);
|
|
// 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_LOW, 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
|
|
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_NOARMOURON, BP_BODY, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOARMOURON, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOARMOURON, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOARMOURON, BP_FEET, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOARMOURON, BP_RIGHTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOARMOURON, BP_LEFTFINGER, NA, NA, NULL);
|
|
// other special stuff
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, "puddle of oil");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_EARS, NA, NA, "audio inputs");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_EYES, NA, NA, "video inputs");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_BODY, NA, NA, "metal frame");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEGS, NA, NA, "stabilisers");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_HANDS, NA, NA, "robotic hands");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_FEET, NA, NA, "lower propulsion units");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right sensor");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left sensor");
|
|
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, NA, NA, NA, "1d4+3");
|
|
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, NA, NA, "1d4");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "bleeps^a bleep");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_DWARF, "dwarf", 60, 'h', C_BROWN, MT_FLESH, RC_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_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, NA, NA, NA, "1d4+3");
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, NA, NA, "1d2");
|
|
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);
|
|
|
|
addrace(R_ELF, "elf", 60, '@', C_GREEN, MT_FLESH, RC_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_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_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, NA, NA, NA, "1d4+3");
|
|
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, NA, NA, "1d2");
|
|
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);
|
|
|
|
|
|
// human monsters...
|
|
addrace(R_BANDITLDR, "bandit leader", 75, '@', C_GREY, MT_FLESH, RC_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, 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_DEMANDSBRIBE, 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, NA, NA, NA, "4d4+2");
|
|
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, NA, NA, "1d2");
|
|
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);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, 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_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "2d4");
|
|
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, NA, NA, "1d2");
|
|
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);
|
|
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, NA, NA, NA, "1d4+2");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, NA, NA, "1d2");
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, 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);
|
|
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_HITDICE, NA, NA, NA, "1d4+2");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, NA, NA, "1d2");
|
|
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);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LTAVERAGE, NA, 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, NA, NA, NA, "2d4");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, NA, NA, "1d2");
|
|
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);
|
|
|
|
addrace(R_TOWNGUARD, "town guard", 100, '@', C_GREY, MT_FLESH, RC_HUMANOID);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, NA, NA, "12-18");
|
|
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, NA, NA, NA, "4d4+4");
|
|
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, NA, NA, "1d2");
|
|
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, "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);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, NA, NA, "20");
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, NA, NA, "10");
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, NA, NA, "18");
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, NA, NA, "16");
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, NA, NA, "16");
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, NA, NA, "16");
|
|
addflag(lastrace->flags, F_STARTASLEEPPCT, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "50d4");
|
|
addflag(lastrace->flags, F_UNIQUE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, NA, NA, "1d2");
|
|
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_SPELLCASTING, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, NA, NA, B_APPENDYOU, "gestures imperiously");
|
|
// god abilities
|
|
addflag(lastrace->flags, F_GODOF, NA, NA, NA, "Purity");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, 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_CANWILL, OT_S_WISHLIMITED, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_PLANESHIFT, NA, NA, "pw:1;");
|
|
// likes/dislikes
|
|
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, "casting holy spells");
|
|
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_GODTHIEVES, "Felix", 300, '@', C_BOLDMAGENTA, MT_FLESH, RC_GOD);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NEUTRAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, NA, NA, "20");
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, NA, NA, "10");
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, NA, NA, "9");
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, NA, NA, "10");
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, NA, NA, "8");
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, NA, NA, "6");
|
|
addflag(lastrace->flags, F_STARTASLEEPPCT, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "30d4");
|
|
addflag(lastrace->flags, F_UNIQUE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, NA, NA, "1d2");
|
|
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_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, NA, NA, B_APPENDYOU, "waves his hand");
|
|
// god abilities
|
|
addflag(lastrace->flags, F_GODOF, NA, NA, NA, "Thieves");
|
|
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_CANWILL, OT_S_CALLWIND, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_CONFISCATE, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_WISHLIMITED, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_HUNGER, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_PLANESHIFT, 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_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
|
|
addflag(lastrace->flags, F_SACRIFICEOBCLASS, OC_MONEY, NA, 2, "OB IS consumed in a swirl of shadowy blackness");
|
|
|
|
|
|
addrace(R_GODDEATH, "Hecta", 100, '@', C_BOLDMAGENTA, MT_FLESH, RC_GOD);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, NA, NA, "16");
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, NA, NA, "20");
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, NA, NA, "15");
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, NA, NA, "18");
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, NA, NA, "6");
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, NA, NA, "6");
|
|
addflag(lastrace->flags, F_STARTASLEEPPCT, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "30d4");
|
|
addflag(lastrace->flags, F_UNIQUE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "2d6");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TOUCHPARALYZE2, NA, NA, "1d6");
|
|
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_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SPELLCASTING, PR_EXPERT, 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, NA, NA, NA, "extends a skeletal finger");
|
|
// god abilities
|
|
addflag(lastrace->flags, F_GODOF, NA, NA, NA, "Death");
|
|
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_CANWILL, OT_S_WISHLIMITED, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_PLANESHIFT, NA, NA, "pw:1;");
|
|
// likes
|
|
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_GODMERCY, "Yumi", 300, '@', C_BOLDMAGENTA, MT_FLESH, RC_GOD);
|
|
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, "10");
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, NA, NA, "10");
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, NA, NA, "18");
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, NA, NA, "17");
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, NA, NA, "10");
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, NA, NA, "17");
|
|
addflag(lastrace->flags, F_STARTASLEEPPCT, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "50d4");
|
|
addflag(lastrace->flags, F_UNIQUE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, NA, NA, "1d2");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "blessed longsword of mercy");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "10 blessed vials of ambrosia");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "2 rings of regeneration");
|
|
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, NA, NA, NA, "raises her hand");
|
|
// god abilities
|
|
addflag(lastrace->flags, F_GODOF, B_FEMALE, NA, NA, "Mercy");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_CUREPOISON, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_HEALINGMAJ, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_WISHLIMITED, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_SATEHUNGER, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_DISPERSAL, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_SLEEP, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_PLANESHIFT, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "the successful casting of healing spells");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "allowing fleeing creatures to escape");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "acts of charity");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "natural healing");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "attacking the innocent");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "sneak attacks");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "the use of poison");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "the destruction of healing potions");
|
|
// 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);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_VHIGH, 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_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "12d4+4");
|
|
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_CANWILL, OT_S_FIREDART, NA, NA, "pw:5;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_WEAKEN, NA, NA, "pw:2;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_SLEEP, NA, NA, "pw:2;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_SUCK, NA, NA, "pw:2;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_PARALYZE, NA, NA, "pw:2;");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "2d4");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, NA, NA, B_APPENDYOU, "gazes");
|
|
addflag(lastrace->flags, F_CASTTYPE, CT_GAZE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, NA, 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_SPELLCASTING, PR_EXPERT, 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_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_EYES, NA, NA, "eyestalks");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 30, NA, NA, NULL);
|
|
|
|
addrace(R_BUGBEAR, "bugbear", 120, 'G', C_BROWN, MT_FLESH, RC_HUMANOID);
|
|
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_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "5d4+5");
|
|
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, NA, NA, "2d4+1");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, 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_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_BODYPARTNAME, BP_HANDS, NA, NA, "claws");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right foreclaw");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left foreclaw");
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
|
|
addrace(R_COCKATRICE, "cockatrice", 5, 'c', C_YELLOW, MT_FLESH, RC_MAGIC);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_VHIGH, NA, NULL);
|
|
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_BLOODOB, NA, NA, NA, "splash of cockatrice blood");
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "5d4");
|
|
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_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, 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_DTIMMUNE, DT_PETRIFY, B_TRUE, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d6+3");
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
// special attack handled in attack.c
|
|
|
|
addrace(R_CREEPINGCLAW, "creeping claw", 3, 'x', C_YELLOW, MT_FLESH, RC_MAGIC);
|
|
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_SIZE, SZ_TINY, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NUMAPPEAR, 1, 3, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "1d4");
|
|
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, NA, NA, "1d3");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_EYES, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HEAD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_BODY, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WAIST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_FEET, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEFTFINGER, 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);
|
|
|
|
addrace(R_DARKMANTLE, "darkmantle", 70, 'U', C_BLUE, MT_FLESH, RC_MAGIC);
|
|
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_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "7d4");
|
|
addflag(lastrace->flags, F_ARMOURRATING, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLYING, 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_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, NA, NA, B_APPENDYOU, "waves its tentacles");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TENTACLE, NA, NA, "2d6");
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, NA, 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_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_EYEBAT, "eyebat", 5, 'e', C_BLUE, MT_FLESH, RC_MAGIC);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, 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_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "1d4+3");
|
|
addflag(lastrace->flags, F_EVASION, 20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLYING, B_TRUE, NA, NA, "");
|
|
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, CT_GAZE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, NA, NA, B_APPENDYOU, "gazes");
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, UNLIMITED, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SPELLCASTING, PR_EXPERT, 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, 30, NA, NA, NULL);
|
|
|
|
addrace(R_GIANTHILL, "hill giant", 160, 'H', C_GREY, MT_FLESH, RC_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, NA, NA, NA, "19d4");
|
|
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, NA, NA, "2d5");
|
|
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);
|
|
|
|
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_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, "fire giant", 160, 'H', C_RED, MT_FLESH, RC_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, NA, NA, NA, "21d4");
|
|
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, NA, NA, "2d5+3");
|
|
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_AVERAGE, 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_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);
|
|
|
|
addrace(R_GIANTFIREFC, "fire giant forgecaller", 160, 'H', C_RED, MT_FLESH, RC_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, NA, NA, NA, "17d4");
|
|
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, NA, NA, "2d5+3");
|
|
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_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, 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_CANCAST, OT_S_FIREDART, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FLAMEPILLAR, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLAMEBURST, 4, 4, "pw:4;");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SPELLCASTING, PR_ADEPT, NA, NULL);
|
|
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);
|
|
|
|
addrace(R_GIANTFIRETITAN, "fire titan", 160, 'H', C_RED, MT_FLESH, RC_HUMANOID);
|
|
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_ENORMOUS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "49d4");
|
|
addflag(lastrace->flags, F_ARMOURRATING, 20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, -30, 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, NA, NA, "2d5+8");
|
|
addflag(lastrace->flags, F_STARTOB, 90, NA, NA, "100-300 gold coins");
|
|
f = addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "flaming greatsword of pyromania");
|
|
addcondition(f, FC_NOCONDITION, 65);
|
|
addaltval(f, F_STARTOB, 100, NA, NA, "flaming greatsword");
|
|
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_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 4, NA, "bellows^a bellow");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 3, NA, "^crackling flames.");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HEAVYBLOW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_BURNINGWAVE, 3, 3, "pw:6;");
|
|
addflag(lastrace->flags, F_DTRESIST, DT_FIRE, 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_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
|
|
// TODO: storm giant
|
|
// TODO: storm titan
|
|
|
|
addrace(R_GNOLL, "gnoll", 130, 'h', C_BROWN, MT_FLESH, RC_HUMANOID);
|
|
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_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "8d4");
|
|
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_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d6+4");
|
|
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_PACKATTACK, 3, NA, 2, 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_BODYPARTNAME, BP_HANDS, NA, NA, "claws");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right foreclaw");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left foreclaw");
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
|
|
addrace(R_GNOLLHM, "gnoll huntmaster", 130, 'h', C_BROWN, MT_FLESH, RC_HUMANOID);
|
|
lastrace->baseid = R_GNOLL;
|
|
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_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_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "10d4");
|
|
addflag(lastrace->flags, F_ARMOURRATING, 9, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 0, 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_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d6+4");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "leather armour");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "longbow");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "10-20 arrows");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "hand axe");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "1-40 gold coins");
|
|
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_PACKATTACK, 3, NA, 2, NULL);
|
|
addflag(lastrace->flags, F_MINIONS, 75, 1, 2, "gnoll");
|
|
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_BODYPARTNAME, BP_HANDS, NA, NA, "claws");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right foreclaw");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left foreclaw");
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 12, NA, NA, NULL);
|
|
|
|
addrace(R_GNOLLMR, "gnoll marauder", 130, 'h', C_BROWN, MT_FLESH, RC_HUMANOID);
|
|
lastrace->baseid = R_GNOLL;
|
|
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_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 65, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 65, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "10d4");
|
|
addflag(lastrace->flags, F_ARMOURRATING, 9, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 0, 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_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d4+2");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "leather armour");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "spear");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "buckler");
|
|
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_QUICKBITE, 1, 6, 2, NULL);
|
|
addflag(lastrace->flags, F_PACKATTACK, 3, NA, 2, NULL);
|
|
addflag(lastrace->flags, F_MINIONS, 75, 1, 2, "gnoll");
|
|
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_BODYPARTNAME, BP_HANDS, NA, NA, "claws");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right foreclaw");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left foreclaw");
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 12, NA, NA, NULL);
|
|
|
|
addrace(R_GOBLIN, "goblin", 20, 'g', C_BROWN, MT_FLESH, RC_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, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 87, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "2d4+3");
|
|
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, NA, NA, "1d4");
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, 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_STARTOB, 50, NA, NA, "1-25 gold coins");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "short sword");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "sling");
|
|
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_PACKATTACK, 2, DT_SLASH, 3, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 25, J_ROGUE, 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);
|
|
|
|
addrace(R_GOBLINWAR, "goblin warrior", 30, 'g', C_BROWN, MT_FLESH, RC_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_FOREST, 75, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "3d4+5");
|
|
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, NA, NA, "1d4+2");
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, 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_STARTOB, 100, NA, NA, "spear");
|
|
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_PACKATTACK, 2, DT_SLASH, 3, 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 sharpshooter", 20, 'g', C_BROWN, MT_FLESH, RC_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_FOREST, 70, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "3d4+7");
|
|
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, NA, NA, "1d4");
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, 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_STARTOB, 100, NA, NA, "short sword");
|
|
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_PACKATTACK, 2, DT_SLASH, 3, 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 hexer", 20, 'g', C_BROWN, MT_FLESH, RC_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_FOREST, 63, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "5d4+6");
|
|
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, NA, NA, "1d4");
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, 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_STARTOB, 80, NA, NA, "club");
|
|
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_PACKATTACK, 2, DT_SLASH, 3, 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_STARTSKILL, SK_SPELLCASTING, 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_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_HOBGOBLIN, "hobgoblin", 90, 'g', C_GREEN, MT_FLESH, RC_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, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 73, NA, NULL);
|
|
addflag(lastrace->flags, F_NUMAPPEAR, 1, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "5d4+3");
|
|
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, NA, NA, "1d6+2");
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, 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_STARTOB, 80, NA, NA, "longsword");
|
|
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);
|
|
|
|
addrace(R_HOBGOBLINWAR, "hobgoblin warrior", 90, 'g', C_GREEN, MT_FLESH, RC_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_FOREST, 60, NA, NULL);
|
|
addflag(lastrace->flags, F_NUMAPPEAR, 1, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "7d4+3");
|
|
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, NA, NA, "1d6+4");
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, 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_STARTOB, 100, NA, NA, "flail");
|
|
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);
|
|
|
|
// TODO: hobgoblin archer
|
|
// TODO: hobgoblin warcaster
|
|
|
|
addrace(R_KOBOLD, "kobold", 18, 'k', C_BROWN, MT_FLESH, RC_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, 95, NA, NULL);
|
|
addflag(lastrace->flags, F_POISONOUS, 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, NA, NA, NA, "1d4");
|
|
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, NA, NA, "1d3");
|
|
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_STARTOBDT, 20, DT_PIERCE, 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, 50, 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_MORALE, 0, NA, NA, NULL);
|
|
|
|
addrace(R_TROGLODYTE, "troglodyte", 20, 'z', C_GREY, MT_FLESH, RC_HUMANOID);
|
|
addflag(lastrace->flags, F_COLDBLOOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_POISONOUS, 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, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "4d4");
|
|
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_HASATTACK, OT_FISTS, NA, NA, "1d2");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TAIL, NA, NA, "1d2");
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "club");
|
|
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, 3, 3, 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);
|
|
|
|
addrace(R_LEPRECHAUN, "leprechaun", 35, 'n', C_GREEN, MT_FLESH, RC_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, NA, NA, NA, "4d4");
|
|
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_HASATTACK, OT_FISTS, NA, NA, "1d2-1");
|
|
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_CANWILL, OT_S_BLINK, 5, 5, "pw:1;");
|
|
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);
|
|
|
|
addrace(R_LIZARDMAN, "lizardman", 100, 'z', C_GREEN, MT_FLESH, RC_HUMANOID);
|
|
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, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 72, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "6d4");
|
|
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_HASATTACK, OT_CLAWS, NA, NA, "1d5+1");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TAIL, NA, NA, "1d4");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "1-50 gold coins");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "spear");
|
|
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, NA, NA, B_APPENDYOU, "spits");
|
|
addflag(lastrace->flags, F_CANWILL, 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_MORALE, 5, NA, NA, NULL);
|
|
|
|
|
|
addrace(R_MINOTAUR, "minotaur", 130, 'H', C_BROWN, MT_FLESH, RC_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, 62, NA, 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, NA, NA, NA, "6d4+3");
|
|
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_IQ, NA, NA, "5-7");
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_BUTT, NA, NA, "2d4+6");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_BUTT, NA, NA, "2d4+6");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "+2 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_NOARMOURON, BP_HEAD, NA, NA, NULL);
|
|
|
|
|
|
addrace(R_OGRE, "ogre", 160, 'O', C_BROWN, MT_FLESH, RC_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, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 66, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "7d4+0");
|
|
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, NA, NA, "2d4");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, NA, NA, "2d4");
|
|
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_STR, AT_HIGH, 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_MINIONS, 20, 1, 2, "orc warrior");
|
|
addflag(lastrace->flags, F_MORALE, 20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_NOVICE, NA, NULL);
|
|
|
|
addrace(R_OGRESAVAGE, "ogre savage", 160, 'O', C_BROWN, MT_FLESH, RC_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_FOREST, 55, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "13d4+8");
|
|
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, NA, NA, "3d4");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, NA, NA, "3d4");
|
|
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_STR, AT_HIGH, 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, "blessed great club");
|
|
addcondition(f, FC_NOCONDITION, 80);
|
|
addaltval(f, F_STARTOB, 100, NA, NA, "great club");
|
|
addflag(lastrace->flags, F_STARTOB, 80, 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, 20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MINIONS, 50, 1, 5, "orc");
|
|
addflag(lastrace->flags, F_MINIONS, 50, 1, 3, "orc warrior");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
|
|
addrace(R_OGREWARHULK, "ogre warhulk", 160, 'O', C_BROWN, MT_FLESH, RC_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_FOREST, 50, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "35d4+0");
|
|
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, NA, NA, "4d4");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, NA, NA, "4d4");
|
|
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_STR, AT_HIGH, 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, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MINIONS, 25, 1, 8, "orc");
|
|
addflag(lastrace->flags, F_MINIONS, 25, 1, 2, "orc warrior");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_ADEPT, NA, NULL);
|
|
|
|
addrace(R_ORC, "orc", 90, 'o', C_BROWN, MT_FLESH, RC_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_FOREST, 80, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "3d4+3");
|
|
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_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d4");
|
|
f = addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "club");
|
|
addcondition(f, FC_NOCONDITION, 70);
|
|
addaltval(f, F_STARTOBDT, 50, DT_SLASH, 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, 10, NA, NA, NULL);
|
|
|
|
addrace(R_ORCWARRIOR, "orc warrior", 90, 'o', C_BROWN, MT_FLESH, RC_HUMANOID);
|
|
lastrace->baseid = R_ORC;
|
|
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, 70, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 75, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "5d4");
|
|
addflag(lastrace->flags, F_EVASION, 5, 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_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "5d4");
|
|
f = addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "battleaxe");
|
|
addcondition(f, FC_NOCONDITION, 70);
|
|
addaltval(f, F_STARTOBDT, 50, DT_CHOP, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 30, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "leather armour");
|
|
addflag(lastrace->flags, F_STARTOB, 75, NA, NA, "buckler");
|
|
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, 12, NA, NA, NULL);
|
|
|
|
addrace(R_ORK, "ork", 90, 'o', C_BROWN, MT_FLESH, RC_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_FOREST, 81, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "4d4+3");
|
|
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, NA, NA, "1d4");
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, 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_PEGASUS, "pegasus", 130, 'Q', C_GREY, MT_FLESH, RC_MAGIC);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_GOOD, 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_STARTATT, A_IQ, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, 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_FLYING, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "6d4");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_HOOF, NA, NA, "1d8");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_HOOF, NA, NA, "1d8");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d3");
|
|
addflag(lastrace->flags, F_MAXATTACKS, 3, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, 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_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, 25, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_SKILLED, NA, NULL);
|
|
|
|
addrace(R_POLTERGEIST, "poltergeist", 50, 'p', C_GREEN, MT_FLESH, RC_UNDEAD); // sPirit
|
|
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_IQ, AT_AVERAGE, 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, NA, NA, NA, "3d4");
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLYING, B_TRUE, NA, NA, "");
|
|
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, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, NA, NA, B_APPENDYOU, "gestures");
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, NA, NA, NULL);
|
|
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, 30, NA, NA, NULL);
|
|
|
|
addrace(R_SATYR, "satyr", 80, 'h', C_GREEN, MT_FLESH, RC_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, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 75, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "5d4");
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_BUTT, NA, NA, "2d4");
|
|
addflag(lastrace->flags, F_STARTOBDT, 50, DT_SLASH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "panpipes");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "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, NA, 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, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SPELLCASTING, PR_ADEPT, NA, NULL);
|
|
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, 20, NA, NA, NULL);
|
|
|
|
addrace(R_SHADOWCAT, "shadowcat", 5, 'f', C_BLUE, MT_FLESH, RC_MAGIC);
|
|
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_RARITY, H_DUNGEON, 65, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "3d4+3");
|
|
addflag(lastrace->flags, F_EVASION, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d4");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d4");
|
|
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, "cloud of smoke");
|
|
addflag(lastrace->flags, F_MORALE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_HANDS, NA, NA, "paws");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right foreclaw");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left foreclaw");
|
|
|
|
addrace(R_OOZEGREY, "grey ooze", 10, 'j', C_GREY, MT_SLIME, RC_SLIME);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "pool of slime");
|
|
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, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "4d4+0");
|
|
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_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_NOINJURIES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_RIGHTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEFTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HEAD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_EYES, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_FEET, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_ACIDATTACK, NA, NA, "1d6+5");
|
|
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, NA, 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);
|
|
|
|
addrace(R_SPRITEFIRE, "fire sprite", 5, 'n', C_RED, MT_FIRE, RC_MAGIC);
|
|
addflag(lastrace->flags, F_CORPSETYPE, 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_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, NA, NA, NA, "2d4");
|
|
addflag(lastrace->flags, F_EVASION, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLYING, B_TRUE, NA, NA, "");
|
|
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_FIREDART, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, NA, NA, B_APPENDYOU, "gestures");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d3");
|
|
addflag(lastrace->flags, F_PRODUCESLIGHT, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 1, NA, "^crackling flames");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SPELLCASTING, PR_NOVICE, NA, NULL);
|
|
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_MORALE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 30, NA, NA, NULL);
|
|
|
|
addrace(R_SPRITEICE, "ice sprite", 5, 'n', C_WHITE, MT_ICE, RC_MAGIC);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "sheet of ice");
|
|
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_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, NA, NA, NA, "2d4");
|
|
addflag(lastrace->flags, F_EVASION, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLYING, B_TRUE, NA, NA, "");
|
|
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_FROSTBITE, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FREEZEOB, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_ICICLE, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, NA, NA, B_APPENDYOU, "gestures");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d3");
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SPELLCASTING, PR_NOVICE, 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_MORALE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 30, NA, NA, NULL);
|
|
|
|
|
|
addrace(R_TROLL, "troll", 100, 't', C_GREEN, MT_FLESH, RC_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, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "5d4+0");
|
|
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_IQ, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "2d6");
|
|
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, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_HANDS, NA, NA, "claws");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right foreclaw");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left foreclaw");
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_XAT, "xat", 2, 'x', C_BROWN, MT_FLESH, RC_ANIMAL);
|
|
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_HITDICE, NA, NA, NA, "1d4+0");
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d3");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_HANDS, NA, NA, "claws");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right foreclaw");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left foreclaw");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "snorts^a snort");
|
|
addflag(lastrace->flags, F_MORALE, 5, NA, NA, NULL);
|
|
|
|
// fish
|
|
addrace(R_CRAB, "giant crab", 150, ';', C_ORANGE, MT_FLESH, RC_AQUATIC);
|
|
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_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 20, NA, NA, NULL); // very high armour
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "3d4+4");
|
|
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, NA, NA, "2d4");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "2d4");
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WAIST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_GRAB, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_HANDS, NA, NA, "pincers");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right foreclaw");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left foreclaw");
|
|
addflag(lastrace->flags, F_NOARMOURON, BP_RIGHTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOARMOURON, BP_LEFTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOARMOURON, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOARMOURON, BP_FEET, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 5, NA, NA, NULL);
|
|
|
|
addrace(R_MERLOCH, "merloch", 250, 'm', C_ORANGE, MT_FLESH, RC_AQUATIC);
|
|
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_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 15, NA, NA, NULL); // high armour
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "3d4+4");
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_SLOW, NA, NA, "");
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "2d3");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "2d3");
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WAIST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SONICBOLT, NA, NA, "pw:5;dam:2d6;");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_HANDS, NA, NA, "pincers");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right foreclaw");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left foreclaw");
|
|
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_NOARMOURON, BP_RIGHTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOARMOURON, BP_LEFTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOARMOURON, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOARMOURON, BP_FEET, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
|
|
addrace(R_PIRANHA, "piranha", 0.5, ';', C_GREEN, MT_FLESH, RC_AQUATIC);
|
|
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_HITDICE, NA, NA, NA, "1d4");
|
|
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_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WAIST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_FEET, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_RIGHTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEFTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d2");
|
|
addflag(lastrace->flags, F_MORALE, 2, NA, NA, NULL);
|
|
addrace(R_PIRANHAKING, "king piranha", 1, ';', C_GREEN, MT_FLESH, RC_AQUATIC);
|
|
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_HITDICE, NA, NA, NA, "2d4+2");
|
|
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_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WAIST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_FEET, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_RIGHTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEFTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d6");
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CHARGE, NA, NA, "range:5;");
|
|
addflag(lastrace->flags, F_MORALE, 5, NA, NA, NULL);
|
|
addrace(R_EELELEC, "electric eel", 120, ';', C_CYAN, MT_FLESH, RC_AQUATIC);
|
|
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_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "2d4+0");
|
|
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_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WAIST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_FEET, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_RIGHTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEFTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_ZAPPER, NA, NA, "1d6");
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_ELECTRIC, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 3, NA, NA, NULL);
|
|
addrace(R_EELGIANT, "giant eel", 150, ';', C_BLUE, MT_FLESH, RC_AQUATIC);
|
|
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_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "5d4+0");
|
|
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_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WAIST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_FEET, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_RIGHTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEFTFINGER, 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_MORALE, 3, NA, NA, NULL);
|
|
// plants
|
|
addrace(R_CACTUS, "cactus", 30, 'F', C_YELLOW, MT_PLANT, RC_PLANT);
|
|
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_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, 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_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "4d4");
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_EYES, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HEAD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WAIST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_FEET, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_RIGHTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEFTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addrace(R_DREAMFUNGUS, "dreamfungus", 0.5, 'F', C_MAGENTA, MT_METAL, RC_PLANT);
|
|
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_HARMLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, 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_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "1d4");
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_EYES, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HEAD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WAIST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_FEET, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_RIGHTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEFTFINGER, 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);
|
|
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_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, 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_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "2d4");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d6");
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_EYES, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HEAD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WAIST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_FEET, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_RIGHTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEFTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
// end plants
|
|
|
|
// animals
|
|
addrace(R_BAT, "giant bat", 3, 'B', C_BROWN, MT_FLESH, RC_ANIMAL);
|
|
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_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, 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_FLYING, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "0d4+2");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d2");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d3");
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, 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_NOISETEXT, N_FLY, 1, NA, "^flapping wings");
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 2, NA, NA, NULL);
|
|
addrace(R_BATMUTATED, "mutated bat", 3, 'B', C_MAGENTA, MT_FLESH, RC_ANIMAL);
|
|
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_STARTATT, A_IQ, IQ_ANIMAL, 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_FLYING, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "2d4+2");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d2");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d3");
|
|
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, NA, NA, "pw:5;dam:1d6;");
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, 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_NOISETEXT, N_FLY, 1, NA, "^flapping wings");
|
|
addflag(lastrace->flags, F_NOFLEE, B_TRUE, NA, NA, NULL);
|
|
addrace(R_BATVAMPIRE, "vampire bat", 6, 'B', C_BLUE, MT_FLESH, RC_ANIMAL);
|
|
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_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, 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_FLYING, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "2d4+4");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d2");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d3");
|
|
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_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, 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_BEAR, "black bear", 150, 'q', C_BLUE, MT_FLESH, RC_ANIMAL);
|
|
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_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, NA, NA, NA, "5d4+3");
|
|
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, NA, NA, "1d3");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d3");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d6");
|
|
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_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 4, NA, "roars^a roars");
|
|
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_BODYPARTNAME, BP_HANDS, NA, NA, "paws");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right foreclaw");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left foreclaw");
|
|
addflag(lastrace->flags, F_MORALE, 5, NA, NA, NULL);
|
|
addrace(R_BEARGRIZZLY, "grizzly bear", 200, 'q', C_YELLOW, MT_FLESH, RC_ANIMAL);
|
|
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_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, NA, NA, NA, "7d4+5");
|
|
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, NA, NA, "1d6");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d6");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d8");
|
|
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_WANTSOBFLAG, F_EDIBLE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 4, NA, "roars^a roars");
|
|
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_BLEEDABIL, OT_A_RAGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MINIONS, 25, 1, 2, "bear cub");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_HANDS, NA, NA, "paws");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right foreclaw");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left foreclaw");
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
addrace(R_BEARCUB, "bear cub", 60, 'q', C_BROWN, MT_FLESH, RC_ANIMAL);
|
|
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_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "3d4+3");
|
|
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, NA, NA, "1d4");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d4");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d3");
|
|
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_NOISETEXT, N_GETANGRY, 4, NA, "roars^a roars");
|
|
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_BODYPARTNAME, BP_HANDS, NA, NA, "paws");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right foreclaw");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left foreclaw");
|
|
addflag(lastrace->flags, F_MORALE, 3, NA, NA, NULL);
|
|
addrace(R_ANT, "giant ant", 20, 'a', C_BROWN, MT_FLESH, RC_ANIMAL);
|
|
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_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "4d4+3");
|
|
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_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, 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_HASATTACK, OT_TEETH, NA, NA, "0d1+4");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 1, NA, "^scuttling");
|
|
addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
addrace(R_ANTS, "giant soldier ant", 25, 'a', C_BROWN, MT_FLESH, RC_ANIMAL);
|
|
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_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 9, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "4d4+4");
|
|
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_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "0d1+4");
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_GRAB, NA, NA, "dam:1d8+3;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_STINGACID, NA, NA, "dam:1d6+3;needgrab:1;");
|
|
addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 1, NA, "^scuttling");
|
|
addflag(lastrace->flags, F_MINIONS, 50, 1, 3, "giant worker ant");
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 12, NA, NA, NULL);
|
|
addrace(R_ANTLION, "giant antlion", 30, 'a', C_YELLOW, MT_FLESH, RC_ANIMAL);
|
|
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_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 4, NA, 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_HITDICE, NA, NA, NA, "6d4+0");
|
|
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_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "5d4");
|
|
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_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 1, NA, "^scuttling");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 4, NA, "roars^a roars");
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 14, NA, NA, NULL);
|
|
addrace(R_CHICKEN, "chicken", 0.5, 'c', C_BROWN, MT_FLESH, RC_ANIMAL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, 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, NA, NA, NA, "0d4+1");
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, 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_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);
|
|
addrace(R_DOG, "dog", 35, 'd', C_BROWN, MT_FLESH, RC_ANIMAL);
|
|
addflag(lastrace->flags, F_RNDHOSTILE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, 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, NA, NA, NA, "2d4");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d3");
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, 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, 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_BODYPARTNAME, BP_HANDS, NA, NA, "paws");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right foreclaw");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left foreclaw");
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 2, NA, NA, NULL);
|
|
addrace(R_DOGBLINK, "blink dog", 35, 'd', C_BLUE, MT_FLESH, RC_ANIMAL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_GOOD, 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_IQ, AT_HIGH, 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, NA, NA, NA, "3d4+3");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d6");
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, 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_VEGETARIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, NA, NA, NA, NULL); // don't announce spellcasting
|
|
addflag(lastrace->flags, F_CANWILL, 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_BODYPARTNAME, BP_HANDS, NA, NA, "paws");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right foreclaw");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left foreclaw");
|
|
addflag(lastrace->flags, F_MORALE, 2, NA, NA, NULL);
|
|
addrace(R_DOGDEATH, "death hound", 40, 'd', C_MAGENTA, MT_FLESH, RC_ANIMAL);
|
|
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_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, 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, NA, NA, NA, "5d4+1");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d10");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d10");
|
|
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_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, 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_BODYPARTNAME, BP_HANDS, NA, NA, "paws");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right foreclaw");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left foreclaw");
|
|
addflag(lastrace->flags, F_MORALE, 15, NA, NA, NULL);
|
|
addrace(R_DOGWAR, "war hound", 40, 'd', C_BROWN, MT_FLESH, RC_ANIMAL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NUMAPPEAR, 1, 4, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, 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, NA, NA, NA, "4d4+2");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "2d4");
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, 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_BODYPARTNAME, BP_HANDS, NA, NA, "paws");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right foreclaw");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left foreclaw");
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
|
|
addrace(R_HAWKYOUNG, "young hawk", 1, 'A', C_GREY, MT_FLESH, RC_ANIMAL); // 'A' for Avian
|
|
lastrace->baseid = R_HAWK;
|
|
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_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, 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_FLYING, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "1d4+4");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d2");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d2");
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, 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_MORALE, 3, NA, NA, NULL);
|
|
|
|
addrace(R_HAWK, "hawk", 1, 'A', C_GREY, MT_FLESH, RC_ANIMAL); // 'A' for Avian
|
|
lastrace->baseid = R_HAWK;
|
|
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_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, 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_FLYING, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "3d4+3");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d3");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d3");
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, 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);
|
|
|
|
addrace(R_HAWKBLOOD, "blood hawk", 1, 'A', C_RED, MT_FLESH, RC_ANIMAL); // 'A' for Avian
|
|
lastrace->baseid = R_HAWK;
|
|
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_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, 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_FLYING, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "5d4+3");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d3+3");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d4+3");
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, 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);
|
|
addrace(R_HAWKFROST, "frost hawk", 1, 'A', C_CYAN, MT_FLESH, RC_ANIMAL); // 'A' for Avian
|
|
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_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, 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_FLYING, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "10d4");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d6+5");
|
|
addflag(lastrace->flags, F_EXTRADAM, DT_COLD, NA, NA, "1d6");
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, 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_CANWILL, OT_S_COLDBURST, 2, 2, "pw:2;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, NA, 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");
|
|
addrace(R_LEECH, "giant leech", 10, 'j', C_MAGENTA, MT_FLESH, RC_ANIMAL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AQUATIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, 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_HITDICE, NA, NA, NA, "3d4+1");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d3");
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, 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_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_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_CASTCHANCE, 60, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 20, NA, NA, NULL);
|
|
addrace(R_NEWT, "giant newt", 4, ':', C_BROWN, MT_FLESH, RC_ANIMAL);
|
|
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_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "1d4+0");
|
|
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, NA, NA, "1d2-1");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d2-1");
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONDAM, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
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_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 3, NA, NA, NULL);
|
|
addrace(R_PORCUPINE, "giant porcupine", 10, 'r', C_GREY, MT_FLESH, RC_ANIMAL);
|
|
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_IQ, IQ_ANIMAL, 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_HITDICE, NA, NA, NA, "3d4+1");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d4");
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, 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);
|
|
addflag(lastrace->flags, F_MORALE, 8, NA, NA, NULL);
|
|
addrace(R_RAT, "giant rat", 3, 'r', C_BROWN, MT_FLESH, RC_ANIMAL);
|
|
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_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_HITDICE, NA, NA, NA, "0d4+1");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d2");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d3");
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, 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_BODYPARTNAME, BP_HANDS, NA, NA, "claws");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right foreclaw");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left foreclaw");
|
|
addflag(lastrace->flags, F_MORALE, 5, NA, NA, NULL);
|
|
addrace(R_SNAKE, "brown snake", 3, 's', C_BROWN, MT_FLESH, RC_ANIMAL);
|
|
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_IQ, IQ_ANIMAL, 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, NA, NA, NA, "2d4");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d4");
|
|
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_BODYPARTNAME, BP_BODY, NA, NA, "torso");
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_FEET, 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_DTVULN, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISON, NA, NA, NULL);
|
|
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_SNAKECARPET, "carpet snake", 3, 's', C_GREY, MT_FLESH, RC_ANIMAL);
|
|
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_IQ, IQ_ANIMAL, 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, NA, NA, NA, "1d4");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d3+1");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_BODY, NA, NA, "torso");
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_FEET, 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_DTVULN, DT_COLD, NA, NA, NULL);
|
|
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);
|
|
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_IQ, IQ_ANIMAL, 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, NA, NA, NA, "2d4");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "3d4+1");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_BODY, NA, NA, "torso");
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_FEET, 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_DTVULN, DT_COLD, NA, NA, NULL);
|
|
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);
|
|
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_IQ, IQ_ANIMAL, 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, NA, NA, NA, "3d4");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d3+1");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_BODY, NA, NA, "torso");
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_FEET, 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_DTVULN, DT_COLD, NA, NA, NULL);
|
|
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, NA, 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);
|
|
addrace(R_SNAKECOBRAGOLDEN, "golden cobra", 3, 's', C_YELLOW, MT_FLESH, RC_ANIMAL);
|
|
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_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, 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, NA, NA, NA, "3d4+2");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d3+1");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_BODY, NA, NA, "torso");
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_FEET, 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_DTVULN, DT_COLD, NA, NA, NULL);
|
|
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, NA, NA, B_APPENDYOU, "spits");
|
|
addflag(lastrace->flags, F_CASTTYPE, CT_EYESPIT, NA, 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);
|
|
addrace(R_SNAKECONSTRICTOR, "constrictor", 3, 's', C_MAGENTA, MT_FLESH, RC_ANIMAL);
|
|
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_HOSTILE, B_TRUE, 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_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, NA, NA, NA, "4d4+3");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "0d1");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_BODY, NA, NA, "torso");
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_FEET, 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_DTVULN, DT_COLD, NA, NA, NULL);
|
|
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);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, 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_COLDBLOOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, 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, NA, NA, NA, "2d4");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d4+1");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_BODY, NA, NA, "torso");
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_FEET, 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_DTVULN, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISON, NA, NA, NULL);
|
|
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);
|
|
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_AGI, AT_GTAVERAGE, 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_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "3d4+1");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d4");
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, NA, NA, NA, NULL); // don't announce spellcasting
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_WEB, 3, 3, "pw:1;range:4;");
|
|
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_POISONOUS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOMEOB, NA, NA, NA, "web");
|
|
addflag(lastrace->flags, F_HOMELEVOB, NA, NA, NA, "1-10 webs");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_HEAD, NA, NA, "cephalothorax");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_BODY, NA, NA, "abdomen");
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOFLEE, B_TRUE, NA, NA, NULL);
|
|
addrace(R_SPIDERFUNNELWEB, "giant funnelweb", 5, 'S', C_MAGENTA, MT_FLESH, RC_ANIMAL);
|
|
lastrace->baseid = R_SPIDER;
|
|
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_AGI, AT_GTAVERAGE, 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_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "5d4+1");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d4");
|
|
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_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, NA, NA, NA, NULL); // don't announce spellcasting
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_WEB, 3, 3, "pw:5;range:2;");
|
|
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_POISONOUS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOMEOB, NA, NA, NA, "web");
|
|
addflag(lastrace->flags, F_HOMELEVOB, NA, NA, NA, "20-30 webs");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_HEAD, NA, NA, "cephalothorax");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_BODY, NA, NA, "abdomen");
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOFLEE, B_TRUE, NA, NA, NULL);
|
|
addrace(R_SPIDERREDBACK, "giant redback", 5, 'S', C_RED, MT_FLESH, RC_ANIMAL);
|
|
lastrace->baseid = R_SPIDER;
|
|
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_AGI, AT_GTAVERAGE, 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_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "4d4+1");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d4");
|
|
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_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, NA, NA, NA, NULL); // don't announce spellcasting
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_WEB, 3, 3, "pw:7;range:3;");
|
|
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_POISONOUS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOMEOB, NA, NA, NA, "web");
|
|
addflag(lastrace->flags, F_HOMELEVOB, NA, NA, NA, "10-20 webs");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_HEAD, NA, NA, "cephalothorax");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_BODY, NA, NA, "abdomen");
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOFLEE, B_TRUE, NA, NA, NULL);
|
|
addrace(R_WOLFYOUNG, "young wolf", 10, 'd', C_GREY, MT_FLESH, RC_ANIMAL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VHIGH, 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_HITDICE, NA, NA, NA, "2d4+2");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d3");
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, 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, 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_BODYPARTNAME, BP_HANDS, NA, NA, "paws");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right foreclaw");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left foreclaw");
|
|
addflag(lastrace->flags, F_MORALE, 3, NA, NA, NULL);
|
|
addrace(R_WOLF, "wolf", 25, 'd', C_GREY, MT_FLESH, RC_ANIMAL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, 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, NA, NA, NA, "4d4+3");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d5");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d5");
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, 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_BODYPARTNAME, BP_HANDS, NA, NA, "paws");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right foreclaw");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left foreclaw");
|
|
addflag(lastrace->flags, F_MORALE, 7, NA, NA, NULL);
|
|
|
|
// insects
|
|
addrace(R_BUTTERFLY, "butterfly", 0.01, 'i', C_YELLOW, MT_FLESH, RC_ANIMAL);
|
|
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_IQ, IQ_ANIMAL, 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_FLYING, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "0d4+1");
|
|
addflag(lastrace->flags, F_EVASION, 60, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, 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_DEAF, 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_TIMID, B_TRUE, NA, NA, NULL);
|
|
addrace(R_GIANTFLY, "giant fly", 1, 'i', C_GREY, MT_FLESH, RC_INSECT);
|
|
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_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_NUMAPPEAR, 3, 3, NA, "");
|
|
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_FLYING, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "1d1+0");
|
|
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, NA, NA, "1d1-1");
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, 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_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);
|
|
addrace(R_GIANTBLOWFLY, "giant blowfly", 2, 'i', C_GREY, MT_FLESH, RC_INSECT);
|
|
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_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "giant fly corpse");
|
|
addflag(lastrace->flags, F_NUMAPPEAR, 1, 2, NA, "");
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_VERYFAST, NA, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLYING, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "2d4+1");
|
|
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, NA, NA, "1d1");
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, NA, 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_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);
|
|
addrace(R_STIRGE, "stirge", 10, 'i', C_BROWN, MT_FLESH, RC_INSECT);
|
|
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_IQ, IQ_ANIMAL, 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_FLYING, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "1d4+1");
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d3");
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, NA, 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:1d4;");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_HANDS, NA, NA, "claws");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right foreclaw");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left foreclaw");
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_CENTIPEDE, "giant centipede", 3, 'w', C_GREEN, MT_FLESH, RC_INSECT);
|
|
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_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, 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, NA, NA, NA, "3d4");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d6");
|
|
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_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_FEET, 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_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_GLOWBUG, "glowbug", 1, 'i', C_WHITE, MT_FLESH, RC_INSECT);
|
|
addflag(lastrace->flags, F_INSECT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, 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_FLYING, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "1d4+0");
|
|
addflag(lastrace->flags, F_EVASION, 60, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_ZAPPER, NA, NA, "1d2-1");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLASH, 15, 15, "pw:4;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, NA, NA, NA, "pulses");
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, 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_PRODUCESLIGHT, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FLY, 2, 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);
|
|
|
|
// demons
|
|
addrace(R_DRETCH, "dretch", 30, '&', C_BROWN, MT_FLESH, RC_DEMON);
|
|
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_HITDICE, NA, NA, NA, "2d8+4");
|
|
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_IQ, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d6+1");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d4");
|
|
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_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_CANWILL, OT_S_FEAR, 20, 20, "pw:1;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_CLOUDKILL, 20, 20, "pw:1;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_SUMMONDEMON, 20, 20, "pw:3;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, NA, NA, NA, "narrows its eyes");
|
|
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);
|
|
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_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "3d4+0");
|
|
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_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_RIGHTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEFTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_EYES, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HEAD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_FEET, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, 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_QUASIT, "quasit", 4, '&', C_BROWN, MT_FLESH, RC_DEMON);
|
|
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, NA, NA, NA, "3d8");
|
|
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_AGI, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d3-1");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d4-1");
|
|
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_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_CANWILL, OT_S_FEAR, 20, 20, "pw:1;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_INVISIBILITY, 20, 20, "pw:1;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, NA, 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);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, NA, NA, "6");
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, 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, NA, NA, NA, "2d4+4");
|
|
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_HASATTACK, OT_CLAWS, NA, NA, "1d4");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d5");
|
|
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);
|
|
|
|
addrace(R_SKELETON, "skeleton", 20, 'Z', C_GREY, MT_BONE, RC_UNDEAD);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, 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_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "2d4");
|
|
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, NA, NA, "1d5");
|
|
addflag(lastrace->flags, F_NOINJURIES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBDT, 50, DT_CHOP, 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_DTRESIST, DT_SLASH, NA, NA, NULL);
|
|
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);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_EARS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_WEAPON, NA, NA, "right metacarpals");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_SECWEAPON, NA, NA, "left metacarpals");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_BODY, NA, NA, "ribs");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_HEAD, NA, NA, "skull");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_SHOULDERS, NA, NA, "scapulas");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_HANDS, NA, NA, "carpals");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_WAIST, NA, NA, "coccyx");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEGS, NA, NA, "fibulas");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_FEET, NA, NA, "tarsals");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_RIGHTFINGER, NA, NA, "right phalange");
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_LEFTFINGER, NA, NA, "left phalange");
|
|
|
|
addrace(R_GHAST, "ghast", 50, 'Z', C_MAGENTA, MT_FLESH, RC_UNDEAD);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, 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_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "6d4+2");
|
|
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, NA, NA, "1d6");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TOUCHPARALYZE2, NA, NA, "1d1");
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_LEVITATING, 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);
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_HANDS, NA, NA, "claws");
|
|
|
|
addrace(R_GHOST, "ghost", 50, 'p', C_BLUE, MT_MAGIC, RC_UNDEAD); // p for sPirit
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, 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_FLYING, B_TRUE, NA, NA, "");
|
|
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, NA, NA, NA, "5d4+2");
|
|
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_INDUCEFEAR, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_INVISIBILITY, 40, 40, "pw:1;");
|
|
// special: ghosts gain canwill->possession if they are near
|
|
// their previous corpse. use f_mycorpse->oid for this.
|
|
|
|
addrace(R_GHOUL, "ghoul", 50, 'Z', C_GREEN, MT_FLESH, RC_UNDEAD);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, 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_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "4d4+2");
|
|
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, NA, NA, "1d5+3");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TOUCHPARALYZE, NA, NA, "1d1");
|
|
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_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);
|
|
addflag(lastrace->flags, F_BODYPARTNAME, BP_HANDS, NA, NA, "claws");
|
|
|
|
addrace(R_VAMPIRE, "vampire", 75, 'V', C_BLUE, MT_FLESH, RC_UNDEAD);
|
|
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_NOCORPSE, B_TRUE, NA, NA, 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, NA, NA, NA, "8d4+3");
|
|
addflag(lastrace->flags, F_ARMOURRATING, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, -10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOMEOB, NA, NA, NA, "coffin");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, NA, NA, "1d6+4");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, NA, NA, "1d4+3");
|
|
addflag(lastrace->flags, F_FLYING, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_CHARM, 3, 3, "pw:6;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CHARGE, NA, NA, "range:3;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_STUN, 5, 5, "pw:1;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_POLYMORPH, 3, 3, "pw:1;race:vampire bat;");
|
|
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, NA, 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
|
|
// TODO: can shapeshift to bat
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
|
|
// special monsters
|
|
addrace(R_GASCLOUD, "cloud of gas", 0.1, '}', C_GREY, MT_GAS, RC_OTHER);
|
|
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_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLYING, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "1d4+1");
|
|
addflag(lastrace->flags, F_EVASION, 300, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_WEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_RIGHTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEFTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HEAD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_BODY, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_FEET, 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);
|
|
// special: fully heal if our origrace is a vampire, and we are resting over a coffin
|
|
|
|
addrace(R_DANCINGWEAPON, "dancing weapon", 0, ')', C_GREY, MT_METAL, RC_OTHER);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLYING, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "2d4");
|
|
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_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_RIGHTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEFTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HEAD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_BODY, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_FEET, 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);
|
|
|
|
addrace(R_FLOATINGDISC, "floating disc", 0, '_', C_BOLDGREEN, MT_METAL, RC_OTHER);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_LEVITATING, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, NA, NA, NA, "1d4");
|
|
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_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_RIGHTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEFTFINGER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_HEAD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_BODY, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOBODYPART, BP_FEET, 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);
|
|
|
|
// 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 (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_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);
|
|
} else if (r->raceclass->id == RC_GOD) {
|
|
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);
|
|
} else if (r->raceclass->id == RC_MAGIC) {
|
|
addflag(r->flags, F_DISEASEIMMUNE, B_TRUE, NA, NA, NULL);
|
|
} else if (r->raceclass->id == RC_PLANT) {
|
|
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);
|
|
} else if (r->raceclass->id == RC_SLIME) {
|
|
addflag(lastrace->flags, F_DISEASEIMMUNE, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_NOFLEE, B_TRUE, NA, NA, NULL);
|
|
} 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_DTVULN, DT_HOLY, NA, NA, NULL);
|
|
addflag(r->flags, F_SEEINDARK, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_NOFLEE, 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 initskills(void) {
|
|
skill_t *sk;
|
|
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 evasion penalties by 10%.^n", B_FALSE);
|
|
addskilldesc(SK_ARMOUR, PR_BEGINNER, "^gReduces armour evasion penalties by 20%.^n", B_FALSE);
|
|
addskilldesc(SK_ARMOUR, PR_ADEPT, "^gReduces armour evasion penalties by 30%.^n", B_FALSE);
|
|
addskilldesc(SK_ARMOUR, PR_SKILLED, "^gReduces armour evasion penalties by 40%.^n", B_FALSE);
|
|
addskilldesc(SK_ARMOUR, PR_EXPERT, "^gReduces armour evasion penalties by 50%.^n", B_FALSE);
|
|
addskilldesc(SK_ARMOUR, PR_MASTER, "^gReduces armour evasion 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, "Backstab", "Lets you inflict massive damage with stabs when unseen.", 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_BEGINNER, "^gThe power level of wands and scrolls is increased by 2.^n", B_FALSE);
|
|
addskilldesc(SK_CHANNELING, PR_ADEPT, "^gThe power level of wands and scrolls is increased by 4.^n", B_FALSE);
|
|
addskilldesc(SK_CHANNELING, PR_SKILLED, "^gThe power level of wands and scrolls is increased by 6.^n", B_FALSE);
|
|
addskilldesc(SK_CHANNELING, PR_EXPERT, "^gThe power level of wands and scrolls is increased by 8.^n", B_FALSE);
|
|
addskilldesc(SK_CHANNELING, PR_MASTER, "^gThe power level of wands and scrolls is increased by 10.^n", B_FALSE);
|
|
addskill(SK_CLIMBING, "Climbing", "Helps you to climb walls, mountains or other terrain.", 50);
|
|
addskilldesc(SK_CLIMBING, PR_INEPT, "- Increases you chances of successfully climbing by 10% per level.", B_FALSE);
|
|
addskill(SK_COOKING, "Cooking", "Your ability to combine foods into nutritious meals.", 50);
|
|
addskilldesc(SK_COOKING, PR_NOVICE, "^gYou now recognise water and rotting food.^n", B_TRUE);
|
|
addskilldesc(SK_COOKING, PR_BEGINNER, "^gYou can now recognise all kinds of bad food.^n", B_TRUE);
|
|
addskilldesc(SK_COOKING, PR_ADEPT, "^gYou can use the 'cook' ability to make jerky.^n", B_FALSE);
|
|
addskilldesc(SK_COOKING, PR_EXPERT, "^gYou can use the 'cook' ability to make stew.^n", B_FALSE);
|
|
addskill(SK_EVASION, "Evasion", "Your ability to dodge blows or traps.", 50);
|
|
addskilldesc(SK_EVASION, PR_NOVICE, "^gIncreases your EV by 5%.^n", B_FALSE);
|
|
addskilldesc(SK_EVASION, PR_BEGINNER, "^gIncreases your EV by 10%.^n", B_FALSE);
|
|
addskilldesc(SK_EVASION, PR_ADEPT, "^gIncreases your EV by 15%.^n", B_FALSE);
|
|
addskilldesc(SK_EVASION, PR_SKILLED, "^gIncreases your EV by 20%.^n", B_FALSE);
|
|
addskilldesc(SK_EVASION, PR_EXPERT, "^gIncreases your EV by 25%.^n", B_FALSE);
|
|
addskilldesc(SK_EVASION, PR_MASTER, "^gIncreases your EV by 30%.^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_ADEPT, "^gYou can now recognise when poison is potentially fatal.^n", B_TRUE);
|
|
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_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);
|
|
addskill(SK_METALWORK, "Metalwork", "Lets you repair metal objects.", 100);
|
|
addskilldesc(SK_METALWORK, PR_NOVICE, "^gYou can repair metal items up to 33% condition.^n", B_FALSE);
|
|
addskilldesc(SK_METALWORK, PR_BEGINNER, "^gYou can repair metal items up to 50% condition.^n", B_FALSE);
|
|
addskilldesc(SK_METALWORK, PR_ADEPT, "^gYou can repair metal items up to 60% condition.^n", B_FALSE);
|
|
addskilldesc(SK_METALWORK, PR_SKILLED, "^gYou can repair metal items up to 70% condition.^n", B_FALSE);
|
|
addskilldesc(SK_METALWORK, PR_EXPERT, "^gYou can repair metal items up to 85% condition.^n", B_FALSE);
|
|
addskilldesc(SK_METALWORK, PR_MASTER, "^gYou can fully repair metal items.^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_NOVICE, "^gYou suffer a -20% accuracy penalty when using ranged weapons.^n", B_FALSE);
|
|
addskilldesc(SK_RANGED, PR_BEGINNER, "^gYou suffer a -10% accuracy penalty when using ranged weapons.^n", B_FALSE);
|
|
addskilldesc(SK_RANGED, PR_ADEPT, "^gYou no longer suffer a accuracy penalty when using ranged weapons.^n", B_FALSE);
|
|
addskilldesc(SK_RANGED, PR_SKILLED, "^gYou gain a +10% accuracy bonus when using ranged weapons.^n", B_FALSE);
|
|
addskilldesc(SK_RANGED, PR_EXPERT, "^gYou gain a +20% accuracy bonus when using ranged weapons.^n", B_FALSE);
|
|
addskilldesc(SK_RANGED, PR_MASTER, "^gYou gain a +30% accuracy bonus when using ranged weapons.^n", B_FALSE);
|
|
addskill(SK_SEWING, "Sewing", "Lets you repair cloth or leather objects.", 100);
|
|
addskilldesc(SK_SEWING, PR_NOVICE, "^gYou can repair cloth items up to 33% condition.^n", B_FALSE);
|
|
addskilldesc(SK_SEWING, PR_BEGINNER, "^gYou can repair cloth items up to 50% condition^n", B_FALSE);
|
|
addskilldesc(SK_SEWING, PR_ADEPT, "^gYou can repair cloth items up to 60% condition^n", B_FALSE);
|
|
addskilldesc(SK_SEWING, PR_SKILLED, "^gYou can repair cloth items up to 70% condition^n", B_FALSE);
|
|
addskilldesc(SK_SEWING, PR_EXPERT, "^gYou can repair cloth items up to 85% condition^n", B_FALSE);
|
|
addskilldesc(SK_SEWING, PR_MASTER, "^gYou can fully repair cloth items.^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 5%.^n", B_FALSE);
|
|
addskilldesc(SK_SHIELDS, PR_BEGINNER, "^gShield accuracy penalties are reduced by 10%.^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 15%.^n", B_FALSE);
|
|
addskilldesc(SK_SHIELDS, PR_SKILLED, "^gShield accuracy penalties are reduced by 20%.^n", B_FALSE);
|
|
addskilldesc(SK_SHIELDS, PR_EXPERT, "^gShield accuracy penalties are reduced by 25%.^n", B_FALSE);
|
|
addskilldesc(SK_SHIELDS, PR_MASTER, "^gShield accuracy penalties are reduced by 30%.^n", B_FALSE);
|
|
addskill(SK_SPEECH, "Negotiation", "Your skill at haggling prices, or swaying others through speech.", 50);
|
|
addskilldesc(SK_SPEECH, PR_NOVICE, "^gShop item prices are reduced by 5%.^n", B_FALSE);
|
|
addskilldesc(SK_SPEECH, PR_BEGINNER, "^gShop item prices are reduced by 10%.^n", B_FALSE);
|
|
addskilldesc(SK_SPEECH, PR_ADEPT, "^gShop item prices are reduced by 15%.^n", B_FALSE);
|
|
addskilldesc(SK_SPEECH, PR_SKILLED, "^gShop item prices are reduced by 20%.^n", B_FALSE);
|
|
addskilldesc(SK_SPEECH, PR_EXPERT, "^gShop item prices are reduced by 25%.^n", B_FALSE);
|
|
addskilldesc(SK_SPEECH, PR_MASTER, "^gShop item prices are reduced by 30%.^n", B_FALSE);
|
|
addskill(SK_SPELLCASTING, "Sorcery", "Increases the power of spells from all schools except Allomancy, Enviromancy and Psionics.", 50);
|
|
addskilldesc(SK_SPELLCASTING, PR_SKILLED, "^gYou gain the 'study scrolls' ability.^n", B_FALSE);
|
|
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_BEGINNER, "^gYou can now determine how recently footprints were made.^n", B_TRUE);
|
|
addskilldesc(SK_PERCEPTION, PR_ADEPT, "^gYou can now identify creatures from their footprints.^n", B_TRUE);
|
|
addskilldesc(SK_PERCEPTION, PR_ADEPT, "^gYour field of vision is now wider.^n", B_TRUE);
|
|
addskilldesc(SK_PERCEPTION, PR_SKILLED, "^gYou can now recognise the direction of footprints.^n", B_TRUE);
|
|
addskilldesc(SK_PERCEPTION, PR_EXPERT, "^gYou can now move without leaving footprints.^n", B_TRUE);
|
|
addskilldesc(SK_PERCEPTION, PR_MASTER, "^gYou now have perception of your blind spots.^n", B_TRUE);
|
|
addskill(SK_STEALTH, "Stealth", "Affects your ability to move silently.", 0); // untrainable?
|
|
addskilldesc(SK_STEALTH, PR_BEGINNER, "^gYou gain the 'hide' ability.^n", B_FALSE);
|
|
addskilldesc(SK_STEALTH, PR_EXPERT, "^gYou can now hide even when monsters are nearby.^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_RANGED, PR_NOVICE, "^gYou suffer a -20% accuracy penalty when throwing items.^n", B_FALSE);
|
|
addskilldesc(SK_RANGED, PR_BEGINNER, "^gYou suffer a -10% accuracy penalty when throwing items.^n", B_FALSE);
|
|
addskilldesc(SK_RANGED, PR_ADEPT, "^gYou no longer suffer a accuracy penalty when throwing items.^n", B_FALSE);
|
|
addskilldesc(SK_RANGED, PR_SKILLED, "^gYou gain a +10% accuracy bonus when throwing items.^n", B_FALSE);
|
|
addskilldesc(SK_RANGED, PR_EXPERT, "^gYou gain a +20% accuracy bonus when throwing items.^n", B_FALSE);
|
|
addskilldesc(SK_RANGED, PR_MASTER, "^gYou gain a +30% accuracy bonus when throwing items.^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.^n", B_TRUE);
|
|
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
|
|
addskill(SK_LORE_ARCANA, "Lore:Arcana", "Allows you a chance of recognising magical objects and creatures.", 0);
|
|
addskilldesc(SK_LORE_ARCANA, PR_NOVICE, "^gYou can attempt to identify objects with the 'inspect' ability.^n", B_FALSE);
|
|
addskill(SK_LORE_DEMONS, "Lore:Demonology", "Determines your knowledge about demons.", 0);
|
|
addskilldesc(SK_LORE_DEMONS, PR_INEPT, "At each skill level, more information about related creatures will be shown.", B_FALSE);
|
|
addskilldesc(SK_LORE_DEMONS, PR_INEPT, "Each level also gives +10% damage and accuracy against related creatures.", B_FALSE);
|
|
addskilldesc(SK_LORE_DEMONS, PR_NOVICE, "^gExact attributes, armour rating and evasion are revealed.^n", B_FALSE);
|
|
addskilldesc(SK_LORE_DEMONS, PR_BEGINNER, "^gExact attack damage is now revealed.^n", B_FALSE);
|
|
addskilldesc(SK_LORE_DEMONS, PR_ADEPT, "^gExact remaining hit points and stamina are now shown.^n", B_FALSE);
|
|
addskilldesc(SK_LORE_DEMONS, PR_SKILLED, "^gAn approximate threat level is calculated.^n", B_FALSE);
|
|
addskilldesc(SK_LORE_DEMONS, PR_MASTER, "^gYou can view complete information about skills, magic and abilities.^n", B_FALSE);
|
|
addskill(SK_LORE_HUMANOID, "Lore:Humanoid", "Determines your knowledge about humanoid (bipedal) creatures.", 0);
|
|
addskilldesc(SK_LORE_HUMANOID, PR_INEPT, "At each skill level, more information about related creatures will be shown.", B_FALSE);
|
|
addskilldesc(SK_LORE_HUMANOID, PR_INEPT, "Each level also gives +10% damage and accuracy against related creatures.", B_FALSE);
|
|
addskilldesc(SK_LORE_HUMANOID, PR_NOVICE, "^gExact attributes, armour rating and evasion are revealed.^n", B_FALSE);
|
|
addskilldesc(SK_LORE_HUMANOID, PR_BEGINNER, "^gExact attack damage is now revealed.^n", B_FALSE);
|
|
addskilldesc(SK_LORE_HUMANOID, PR_ADEPT, "^gExact remaining hit points and stamina are now shown.^n", B_FALSE);
|
|
addskilldesc(SK_LORE_HUMANOID, PR_SKILLED, "^gAn approximate threat level is calculated.^n", B_FALSE);
|
|
addskilldesc(SK_LORE_HUMANOID, PR_MASTER, "^gYou can view complete information about skills, magic and abilities.^n", B_FALSE);
|
|
addskill(SK_LORE_NATURE, "Lore:Nature", "Determines your knowledge of plants, animals and insects.", 0);
|
|
addskilldesc(SK_LORE_NATURE, PR_INEPT, "At each skill level, more information about related creatures will be shown.", B_FALSE);
|
|
addskilldesc(SK_LORE_NATURE, PR_INEPT, "Each level also gives +10% damage and accuracy against related creatures.", B_FALSE);
|
|
addskilldesc(SK_LORE_NATURE, PR_NOVICE, "^gExact attributes, armour rating and evasion are revealed.^n", B_FALSE);
|
|
addskilldesc(SK_LORE_NATURE, PR_BEGINNER, "^gExact attack damage is now revealed.^n", B_FALSE);
|
|
addskilldesc(SK_LORE_NATURE, PR_ADEPT, "^gExact remaining hit points and stamina are now shown.^n", B_FALSE);
|
|
addskilldesc(SK_LORE_NATURE, PR_SKILLED, "^gAn approximate threat level is calculated.^n", B_FALSE);
|
|
addskilldesc(SK_LORE_NATURE, PR_MASTER, "^gYou can view complete information about skills, magic and abilities.^n", B_FALSE);
|
|
addskill(SK_LORE_UNDEAD, "Lore:Undead", "Determines your knowledge of the undead.", 0);
|
|
addskilldesc(SK_LORE_UNDEAD, PR_INEPT, "At each skill level, more information about related creatures will be shown.", B_FALSE);
|
|
addskilldesc(SK_LORE_UNDEAD, PR_INEPT, "Each level also gives +10% damage and accuracy against related creatures.", B_FALSE);
|
|
addskilldesc(SK_LORE_UNDEAD, PR_NOVICE, "^gExact attributes, armour rating and evasion are revealed.^n", B_FALSE);
|
|
addskilldesc(SK_LORE_UNDEAD, PR_BEGINNER, "^gExact attack damage is now revealed.^n", B_FALSE);
|
|
addskilldesc(SK_LORE_UNDEAD, PR_ADEPT, "^gExact remaining hit points and stamina are now shown.^n", B_FALSE);
|
|
addskilldesc(SK_LORE_UNDEAD, PR_SKILLED, "^gAn approximate threat level is calculated.^n", B_FALSE);
|
|
addskilldesc(SK_LORE_UNDEAD, PR_MASTER, "^gYou can view complete information about skills, magic and abilities.^n", B_FALSE);
|
|
|
|
|
|
// 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_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, short swords, etc.", 50);
|
|
addskill(SK_STAVES, "Staves", "Helps you use quarterstaffs, staffs, etc.", 50);
|
|
addskill(SK_UNARMED, "Unarmed Combat", "Helps you fight using your bare hands.", 50);
|
|
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);
|
|
|
|
// spell schools
|
|
addskill(SK_SS_ALLOMANCY, "Allomancy", "Boosts casting of spells from this school.", 50);
|
|
addskilldesc(SK_SS_ALLOMANCY, PR_NOVICE, "You gain knowledge of all Allomancy spells.", 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, "- Each rank gives you a 10%% 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_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, "Magic:Air Magic", "Boosts casting of spells from this school.", 50);
|
|
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, "Magic:Necromancy", "Boosts casting of spells from this school.", 50);
|
|
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, "Magic:Divination", "Boosts casting of spells from this school.", 50);
|
|
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_ENCHANTMENT, "Magic:Enchantment", "Boosts casting of spells from this school.", 50);
|
|
addskilldesc(SK_SS_ENCHANTMENT, PR_NOVICE, "Allows you to cast Enchantment spells up to level 1.", B_FALSE);
|
|
addskilldesc(SK_SS_ENCHANTMENT, PR_BEGINNER, "Allows you to cast Enchantment spells up to level 2.", B_FALSE);
|
|
addskilldesc(SK_SS_ENCHANTMENT, PR_ADEPT, "Allows you to cast Enchantment spells up to level 3.", B_FALSE);
|
|
addskilldesc(SK_SS_ENCHANTMENT, PR_SKILLED, "Allows you to cast Enchantment spells up to level 4.", B_FALSE);
|
|
addskilldesc(SK_SS_ENCHANTMENT, PR_EXPERT, "Allows you to cast Enchantment spells up to level 5.", B_FALSE);
|
|
addskilldesc(SK_SS_ENCHANTMENT, PR_MASTER, "Allows you to cast Enchantment spells up to level 6.", B_FALSE);
|
|
addskill(SK_SS_FIRE, "Magic:Fire Magic", "Boosts casting of spells from this school.", 50);
|
|
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, "Magic:Cold Magic", "Boosts casting of spells from this school.", 50);
|
|
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_GRAVITY, "Magic:Gravitation Magic", "Boosts casting of spells from this school.", 50);
|
|
addskilldesc(SK_SS_GRAVITY, PR_NOVICE, "Allows you to cast Gravitation Magic spells up to level 1.", B_FALSE);
|
|
addskilldesc(SK_SS_GRAVITY, PR_BEGINNER, "Allows you to cast Gravitation Magic spells up to level 2.", B_FALSE);
|
|
addskilldesc(SK_SS_GRAVITY, PR_ADEPT, "Allows you to cast Gravitation Magic spells up to level 3.", B_FALSE);
|
|
addskilldesc(SK_SS_GRAVITY, PR_SKILLED, "Allows you to cast Gravitation Magic spells up to level 4.", B_FALSE);
|
|
addskilldesc(SK_SS_GRAVITY, PR_EXPERT, "Allows you to cast Gravitation Magic spells up to level 5.", B_FALSE);
|
|
addskilldesc(SK_SS_GRAVITY, PR_MASTER, "Allows you to cast Gravitation Magic spells up to level 6.", B_FALSE);
|
|
addskill(SK_SS_LIFE, "Magic:Life Magic", "Boosts casting of spells from this school.", 50);
|
|
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, "Magic:Modification", "Boosts casting of spells from this school.", 50);
|
|
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, "Magic:Summoning", "Boosts casting of spells from this school.", 50);
|
|
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, "Magic:Translocation", "Boosts casting of spells from this school.", 50);
|
|
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, "Magic:Wild Magic", "Boosts casting of spells from this school.", 50);
|
|
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];
|
|
snprintf(buf, BUFLEN, "^gYou now know basic information about %s.", rc->pluralname);
|
|
addskilldesc(sk->id, PR_NOVICE, buf, B_TRUE);
|
|
snprintf(buf, BUFLEN, "^gYou can now determine how much damage %s will deal.", rc->pluralname);
|
|
addskilldesc(sk->id, PR_BEGINNER, buf, B_TRUE);
|
|
snprintf(buf, BUFLEN, "^gYou can now determine how dangerous %s are.", rc->pluralname);
|
|
addskilldesc(sk->id, PR_ADEPT, buf, B_TRUE);
|
|
snprintf(buf, BUFLEN, "^gYou can now anticipate how %s will react.", rc->pluralname);
|
|
addskilldesc(sk->id, PR_SKILLED, buf, B_TRUE);
|
|
snprintf(buf, BUFLEN, "^gYou now know everything there is to know about %s.", 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);
|
|
addskilldesc(sk->id, PR_NOVICE, "^g-10% accuracy penalty.^n", B_FALSE);
|
|
addskilldesc(sk->id, PR_BEGINNER, "^g-5% accuracy penalty, +10% damage bonus^n", B_FALSE);
|
|
addskilldesc(sk->id, PR_ADEPT, "^gNo accuracy penalty, +20% damage bonus.^n", B_FALSE);
|
|
addskilldesc(sk->id, PR_SKILLED, "^g+25% accuracy bonus, +30% damage bonus.^n", B_FALSE);
|
|
addskilldesc(sk->id, PR_EXPERT, "^g+50% accuracy bonus, +40% damage bonus.^n", B_FALSE);
|
|
addskilldesc(sk->id, PR_MASTER, "^g+50% damage bonus, and you can perform combination strikes.^n", B_FALSE);
|
|
}
|
|
}
|
|
}
|
|
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|