blob: 7a696dc32d562b96a47029a9302f08bbac844a8e [file] [log] [blame]
// MorgenGrauen MUDlib
//
// shells/dwarf.c -- Dwarven Shell
//
// $Id: dwarf.c,v 3.14 2004/12/13 12:54:31 Zook Exp $
#pragma strong_types,save_types
inherit "std/player/base";
#include <properties.h>
#include <attributes.h>
#include <wizlevels.h>
#include <health.h>
#include <new_skills.h>
#include <language.h>
#include <combat.h>
#include <defuel.h>
void create(){
if (!clonep() || object_name(this_object()) == __FILE__[0..<3]) {
set_next_reset(-1);
return;
}
mixed res;
base::create();
SetDefaultHome("/d/gebirge/room/zkapelle");
SetDefaultPrayRoom("/d/gebirge/room/zkapelle");
SetProp(P_ATTRIBUTES_OFFSETS,([A_STR:2,A_DEX:1,A_CON:3]));
SetProp(P_SKILL_ATTRIBUTE_OFFSETS,([SA_DURATION:110]));
SetProp(P_AVERAGE_SIZE,120);
SetProp(P_AVERAGE_WEIGHT,75000);
SetProp(P_MATERIAL_KNOWLEDGE,([MATGROUP_STONE:30,
MATGROUP_METAL:30,
MATGROUP_PRECIOUS_METAL: 40,
MAT_GOLD:100]));
SetProp(P_RESISTANCE_STRENGTHS,
([ DT_FIRE : -0.2,
DT_WATER : 0.4 ]));
SetProp(P_MAX_ALCOHOL,200);
SetProp(P_MAX_FOOD,160);
SetProp(P_SP_DELAY,HEAL_DELAY+1);
SetProp(P_POISON_DELAY,POISON_DELAY+1);
SetProp(P_FOOD_DELAY,FOOD_DELAY-1);
SetProp(P_ALCOHOL_DELAY,ALCOHOL_DELAY-1);
SetProp(P_MAGIC_RESISTANCE_OFFSET,
([ MT_ANGRIFF : 200,
MT_ILLUSION : -500,
MT_BEHERRSCHUNG : 1000,
MT_VERWANDLUNG : 500 ]));
if(!IS_SEER(this_object())){
SetProp(P_MSGIN,"stapft herein");
SetProp(P_MSGOUT,"stapft");
}
if(!(res=QueryProp(P_HANDS)) || !pointerp(res) || (sizeof(res)<3))
res=({" mit blossen Haenden",35,({DT_BLUDGEON}) });
res[1]=35;
SetProp(P_HANDS,res);
SetProp(P_BODY,10);
/* Groesse wird nur einmal gesetzt */
if(!QueryProp(P_SIZE)){
SetProp(P_SIZE,110+random(21));
Set(P_SIZE,SAVE,F_MODE_AS);
}
/* Dito Gewicht */
if(!QueryProp(P_WEIGHT) || (QueryProp(P_WEIGHT) == 75000)){
SetProp(P_WEIGHT,65000+random(20001));
if(QueryProp(P_GENDER)==FEMALE)
SetProp(P_WEIGHT,QueryProp(P_WEIGHT)-5000);
Set(P_WEIGHT,SAVE,F_MODE_AS);
}
SetProp(P_DEFUEL_LIMIT_FOOD,70);
SetProp(P_DEFUEL_LIMIT_DRINK,50);
SetProp(P_DEFUEL_TIME_FOOD,535);
SetProp(P_DEFUEL_TIME_DRINK,500);
SetProp(P_DEFUEL_AMOUNT_FOOD,0.8);
SetProp(P_DEFUEL_AMOUNT_DRINK,0.6);
}
string _query_race()
{
return "Zwerg";
}
string _query_real_race()
{
return "Zwerg";
}
string _query_racedescr()
{
return
"Zwerge sind kleine aber kraeftige Gebirgsbewohner, nicht sehr gespraechig,\n"
+"leicht erzuernt, aber eine schlagkraeftige Unterstuetzung fuer ihre Freunde."
+"\n"
+"Ihr Mut und ihre Standfestigkeit ist weit und breit beruehmt, auch ihr\n"
+"Geschick im Umgang mit Zwergenwaffen verleiht ihnen zusaetzliche Kraft.\n"
+"Leider sind Zwerge nicht allzu schlau, sie verlassen sich lieber auf\n"
+"ihre Kraft als auf ihr Gehirn.\n";
}
int QueryAllowSelect() { return 1; }
string *_query_racestring()
{
if (QueryProp(P_GENDER)==2)
return ({"Zwergin","Zwergin","Zwergin","Zwergin"});
return ({"Zwerg","Zwerges","Zwerg","Zwerg"});
}
int _query_hp_delay(){
int re;
re = Query(P_HP_DELAY);
if (environment() && environment()->QueryProp(P_INDOORS))
re--;
else
re++;
return re;
}
int _query_sp_delay(){
int re;
re = Query(P_SP_DELAY);
if (environment() && environment()->QueryProp(P_INDOORS))
re--;
else
re++;
return re;
}
string _query_default_guild(){
return "abenteurer";
}
mixed RaceDefault(string arg)
{
if (!arg)
return 0;
switch(arg)
{
case P_HANDS :
return ({" mit blossen Haenden",35,({DT_BLUDGEON}) });
case P_BODY :
return 10;
}
return 0;
}