blob: 7a696dc32d562b96a47029a9302f08bbac844a8e [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001// MorgenGrauen MUDlib
2//
3// shells/dwarf.c -- Dwarven Shell
4//
5// $Id: dwarf.c,v 3.14 2004/12/13 12:54:31 Zook Exp $
6
7#pragma strong_types,save_types
8
9inherit "std/player/base";
10
11#include <properties.h>
12#include <attributes.h>
13#include <wizlevels.h>
14#include <health.h>
15#include <new_skills.h>
16#include <language.h>
17#include <combat.h>
18#include <defuel.h>
19
20
21void create(){
22 if (!clonep() || object_name(this_object()) == __FILE__[0..<3]) {
23 set_next_reset(-1);
24 return;
25 }
26
27 mixed res;
28
29 base::create();
30 SetDefaultHome("/d/gebirge/room/zkapelle");
31 SetDefaultPrayRoom("/d/gebirge/room/zkapelle");
32 SetProp(P_ATTRIBUTES_OFFSETS,([A_STR:2,A_DEX:1,A_CON:3]));
33 SetProp(P_SKILL_ATTRIBUTE_OFFSETS,([SA_DURATION:110]));
34 SetProp(P_AVERAGE_SIZE,120);
35 SetProp(P_AVERAGE_WEIGHT,75000);
36 SetProp(P_MATERIAL_KNOWLEDGE,([MATGROUP_STONE:30,
37 MATGROUP_METAL:30,
38 MATGROUP_PRECIOUS_METAL: 40,
39 MAT_GOLD:100]));
40 SetProp(P_RESISTANCE_STRENGTHS,
41 ([ DT_FIRE : -0.2,
42 DT_WATER : 0.4 ]));
43 SetProp(P_MAX_ALCOHOL,200);
44 SetProp(P_MAX_FOOD,160);
45
46 SetProp(P_SP_DELAY,HEAL_DELAY+1);
47 SetProp(P_POISON_DELAY,POISON_DELAY+1);
48 SetProp(P_FOOD_DELAY,FOOD_DELAY-1);
49 SetProp(P_ALCOHOL_DELAY,ALCOHOL_DELAY-1);
50
51 SetProp(P_MAGIC_RESISTANCE_OFFSET,
52 ([ MT_ANGRIFF : 200,
53 MT_ILLUSION : -500,
54 MT_BEHERRSCHUNG : 1000,
55 MT_VERWANDLUNG : 500 ]));
56
57 if(!IS_SEER(this_object())){
58 SetProp(P_MSGIN,"stapft herein");
59 SetProp(P_MSGOUT,"stapft");
60 }
61
62 if(!(res=QueryProp(P_HANDS)) || !pointerp(res) || (sizeof(res)<3))
63 res=({" mit blossen Haenden",35,({DT_BLUDGEON}) });
64 res[1]=35;
65 SetProp(P_HANDS,res);
66 SetProp(P_BODY,10);
67
68 /* Groesse wird nur einmal gesetzt */
69 if(!QueryProp(P_SIZE)){
70 SetProp(P_SIZE,110+random(21));
71 Set(P_SIZE,SAVE,F_MODE_AS);
72 }
73
74 /* Dito Gewicht */
75 if(!QueryProp(P_WEIGHT) || (QueryProp(P_WEIGHT) == 75000)){
76 SetProp(P_WEIGHT,65000+random(20001));
77 if(QueryProp(P_GENDER)==FEMALE)
78 SetProp(P_WEIGHT,QueryProp(P_WEIGHT)-5000);
79 Set(P_WEIGHT,SAVE,F_MODE_AS);
80 }
81
82 SetProp(P_DEFUEL_LIMIT_FOOD,70);
83 SetProp(P_DEFUEL_LIMIT_DRINK,50);
84 SetProp(P_DEFUEL_TIME_FOOD,535);
85 SetProp(P_DEFUEL_TIME_DRINK,500);
86 SetProp(P_DEFUEL_AMOUNT_FOOD,0.8);
87 SetProp(P_DEFUEL_AMOUNT_DRINK,0.6);
88
89}
90
91string _query_race()
92{
93 return "Zwerg";
94}
95
96string _query_real_race()
97{
98 return "Zwerg";
99}
100
101string _query_racedescr()
102{
103 return
104 "Zwerge sind kleine aber kraeftige Gebirgsbewohner, nicht sehr gespraechig,\n"
105 +"leicht erzuernt, aber eine schlagkraeftige Unterstuetzung fuer ihre Freunde."
106 +"\n"
107 +"Ihr Mut und ihre Standfestigkeit ist weit und breit beruehmt, auch ihr\n"
108 +"Geschick im Umgang mit Zwergenwaffen verleiht ihnen zusaetzliche Kraft.\n"
109 +"Leider sind Zwerge nicht allzu schlau, sie verlassen sich lieber auf\n"
110 +"ihre Kraft als auf ihr Gehirn.\n";
111}
112
113int QueryAllowSelect() { return 1; }
114
115string *_query_racestring()
116{
117 if (QueryProp(P_GENDER)==2)
118 return ({"Zwergin","Zwergin","Zwergin","Zwergin"});
119 return ({"Zwerg","Zwerges","Zwerg","Zwerg"});
120}
121int _query_hp_delay(){
122 int re;
123 re = Query(P_HP_DELAY);
124 if (environment() && environment()->QueryProp(P_INDOORS))
125 re--;
126 else
127 re++;
128 return re;
129}
130int _query_sp_delay(){
131 int re;
132 re = Query(P_SP_DELAY);
133 if (environment() && environment()->QueryProp(P_INDOORS))
134 re--;
135 else
136 re++;
137 return re;
138}
139
140string _query_default_guild(){
141 return "abenteurer";
142}
143
144mixed RaceDefault(string arg)
145{
146 if (!arg)
147 return 0;
148 switch(arg)
149 {
150 case P_HANDS :
151 return ({" mit blossen Haenden",35,({DT_BLUDGEON}) });
152 case P_BODY :
153 return 10;
154 }
155 return 0;
156}