daleken/
daleken/data/notes/
daleken/data/player/
daleken/data/system/poses/
daleken/doc/Homepage/images/
daleken/log/
<html>
<head>
<title>Race Information</title>
<link rel="stylesheet" type="text/css" href="doc.css"
title="Documentation Standard Style">
</head>
<body bgcolor="#ffffff">

<table class="main" width="600" border="0">
<tr><td>
<div align="right">
DalekenMUD 1.12 documentation.
<br>Updated 7 June 2000.
</div>
</td></tr>

<tr><th class="heading">
<h1>Race Information</h1>
</th></tr>

<tr><td> 

<p>Experience note: experience per level is based on race with humans at an
average of about 1000, all the bonuses/disadvantages in this race_table count
toward calculation of this 'tnl' be careful you dont make races too powerful
or you will never see a character get to level 2, take a look some time at
the experience per level of a God.</p>


<p>The central organizing table to races is <code>race_table</code>, which is
an array of type <code>struct race_type</code> (defined in
<code>types.h</code>) and is defined in <code>const.c</code>. Humans have
race 0, and races go through MAX_RACE-1. The order of which each array member
does not matter as all necessary work is done by search functions.</p>

<p>The fields of race_table are:</p>

<dl>
<dt><code>const char *name;</code></dt>
<dt><code>const char who_name[7];</code></dt>
<dd>
This is the name of the race group. The mud uses this field not only as a
marker for easy access to the information following, but also for displays.
The who_name is the shortened version, used in some other places like 'who'.
</dd>
<dt><code>int race_abilities;</code></dt>
<dd>
Represented in bit notation, this holds all the information for the
natural abilities each race has. You may find these individual bits in
merc.h as RACE_*.
</dd>
<dt><code>int size;</code></dt>
<dd>
This size value represents the proportional size of this race group.
0 is smallest. Size is used to modify tohit and other transparent modifiers.
</dd>
<dt><code>int str_mod;</code></dt>
<dd>
This is the modifier to the natural strength this race may attain.
</dd>
<dt><code>int int_mod;</code></dt>
<dd>
This is the modifier to the natural intelligence this race may
attain.
</dd>
<dt><code>int wis_mod;</code></dt>
<dd>
This is the modifier to the natural wisdom this race may attain.
</dd>
<dt><code>int dex_mod;</code></dt>
<dd>
This is the modifier to the natural dexterity this race may attain.
</dd>
<dt><code>int con_mod;</code></dt>
<dd>
This is the modifier to the natural constitution this race may
attain.
</dd>
<dt><code>int hp_gain;</code></dt>
<dt><code>int mana_gain[MAGIC_MAX];</code></dt>
<dt><code>int move_gain;</code></dt>
<dd>
These add extra regeneration to hps, mana and moves, they also add
extra to gains when the character levels, negatives subtract. Look at the
values given and choose suitable numbers, 50 will be extremely good and -50
is a severe penalty so be careful, +/-10 should be sufficient in most
instances.
</dd>
<dt><code>int thirst_mod;</code></dt>
<dt><code>int hunger_mod;</code></dt>
<dd>
How big is your stomach? These numbers show the capacity for food
and drink for that race, 100 is average and between 60 and 600 sounds decent.
The bigger the number the more food/drink you can take, however you will use
it up faster as well, only coming out a little ahead of the game. Dragons,
for instance, eat a lot more than a human but it gets used faster, they have
to eat less often but end up eating more, the same principle applies to all
races.
</dd>
<dt><code>const char *dmg_message;</code></dt>
<dd>
This is the hand weapon message. Used for display and aesthetic
purposes.
</dd>
<dt><code>const char *hate;</code></dt>
<dd>
This string represents all the races this race group hates and is
aggressive toward. The mud will determine racial hatred by checking if the
victim's race name appears in the hate string of the aggressor. If you wish
to modify this field, just add a race name to this field as it appears in the
name field of the race.
</dd>
<dt><code>int resil;</code></dt>
<dd>
This number is a fraction over 1000 of the damage that race takes
from regular hits. This means that 900 resilience races only take 90% of the
damage actually given to them. If this is too low the race will be very hard
to hurt, but the tnl is increased accordingly.
</dd>
<dt><code>int magic_resist;</code></dt>
<dd>
This is the magical resistance of the race as a percentage, the higher the
better, it represents a modifier to save throw which acts as a modifier on
the amount of damage taken from magical attacks.
</dd>
<dt><code>int body_temp;</code></dt>
<dd>
Standard racial body temperature, human average is 0 so adjust as you
think suits best, high body temperature means less damage from fire but you
cop it from ice and vice versa.
</dd>
<dt><code>int body_parts;</code></dt>
<dd>
Bitfield like abilities, use BODY_PARTS_HUMAN for most races and
consult merc.h to see what parts are available. Don't give a race no body
parts if they are to become player races as they wont be able to wear the
gear and think that lungs are important too, most players wont be able to
live only in the watery places of the worlds, there aren't that many.
</dd>
<dt><code>const char *racial_skill;</code></dt>
<dd>
This is a space seperated string of all the skills that a creature of
this race can use. If the skill/spell has two words enclose it in '', "" or
(), don't overdo these either, just a simple skill if enough sometimes,
players dont want to have to pay for these skills in tnl.
</dd>
</dl>

</td></tr>

<tr><th class="heading">
<h2>How to Add a New Race</h2>
</th></tr>

<tr><td>
<p>This section enumerates the changes that need to be made to the base level
Daleken code necessary for the addition of a new race.</p>

<dl>
<dt><code>const.h</code></dt>
<dd>Increase MAX_RACE by as many races you add</dd>
<dt><code>const.c</code></dt>
<dd>Add race definition (structure) to race_table.  (Order does not
    matter)</dd>
</dl>

<p>Obviously adding a new race to Daleken is an easy task. All is required is
good planning of what you wish this race to be and entering the appropriate
data.</p>
</td></tr>
</table>
</body>
</html>