blob: b626b06c87feafac4f5fa9bb915566ca16e6056e [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001// MorgenGrauen MUDlib
2//
3// shells/hobbit.c -- Hobbit Shell
4//
5// 9.April 1995 V1.0 Gundur
6//
7// 15.Juni prayroom und defHome auf Hobbitdorf gesetzt von Gundur
8//
9// $Id: hobbit.c 8920 2014-09-02 20:18:38Z Zesstra $
10
11#pragma strong_types,save_types
12
13inherit "std/player/base";
14
15#include <properties.h>
16#include <attributes.h>
17#include <wizlevels.h>
18#include <health.h>
19#include <new_skills.h>
20#include <language.h>
21#include <combat.h>
22#include <moving.h>
23#include <defuel.h>
24
25
26
27void create(){
28 if (!clonep() || object_name(this_object()) == __FILE__[0..<3]) {
29 set_next_reset(-1);
30 return;
31 }
32
33 mixed res;
34
35 base::create();
36 SetDefaultHome("/d/wald/gundur/hobbitdorf/schrein");
37 SetDefaultPrayRoom("/d/wald/gundur/hobbitdorf/schrein");
38 SetProp(P_ATTRIBUTES_OFFSETS,([A_DEX:4,A_CON:2]));
39 SetProp(P_AVERAGE_SIZE, 105);
40 SetProp(P_AVERAGE_WEIGHT, 60000);
41 SetProp(P_MATERIAL_KNOWLEDGE,([MATGROUP_EATABLE:30,
42 MATGROUP_DRUG:30,
43 MATGROUP_POISONOUS:10]));
44 SetProp(P_RESISTANCE_STRENGTHS,
45 ([ DT_TERROR : -0.1,
46 DT_MAGIC : -0.1,
47 DT_SOUND : 0.2,
48 DT_LIGHTNING : 0.1,
49 DT_POISON : 0.1 ]));
50 SetProp(P_MAX_FOOD,250);
51 SetProp(P_MAX_DRINK,100);
52 SetProp(P_MAX_ALCOHOL,150);
53
54 SetProp(P_SP_DELAY,HEAL_DELAY+1);
55 SetProp(P_POISON_DELAY,POISON_DELAY-1);
56 SetProp(P_FOOD_DELAY,FOOD_DELAY-2);
57 SetProp(P_ALCOHOL_DELAY,ALCOHOL_DELAY+1);
58
59 SetProp(P_MAGIC_RESISTANCE_OFFSET,
60 ([ MT_ANGRIFF : 500,
61 MT_HELLSICHT : -500,
62 MT_PSYCHO : -500 ]));
63
64 if(!(res=QueryProp(P_HANDS)) || !pointerp(res) || (sizeof(res)<3))
65 res=({" mit pelzigen Haenden",25,({DT_BLUDGEON})});
66 res[1]=25;
67 SetProp(P_HANDS,res);
68 SetProp(P_BODY,15);
69
70 /* Groesse wird nur einmal gesetzt */
71 if(!QueryProp(P_SIZE)){
72 SetProp(P_SIZE,95+random(21));
73 Set(P_SIZE,SAVE,F_MODE_AS);
74 }
75
76 /* Dito Gewicht */
77 if(!QueryProp(P_WEIGHT) || (QueryProp(P_WEIGHT) == 75000)){
78 SetProp(P_WEIGHT,50000+random(20001));
79 if(QueryProp(P_GENDER)==FEMALE)
80 SetProp(P_WEIGHT,QueryProp(P_WEIGHT)-5000);
81 Set(P_WEIGHT,SAVE,F_MODE_AS);
82 }
83 SetProp(P_DEFUEL_LIMIT_FOOD,140);
84 SetProp(P_DEFUEL_LIMIT_DRINK,50);
85 SetProp(P_DEFUEL_TIME_FOOD,850);
86 SetProp(P_DEFUEL_TIME_DRINK,450);
87 SetProp(P_DEFUEL_AMOUNT_FOOD,0.8);
88 SetProp(P_DEFUEL_AMOUNT_DRINK,0.6);
89
90}
91
92string _query_race()
93{
94 return "Hobbit";
95}
96
97string _query_real_race()
98{
99 return "Hobbit";
100}
101
102string _query_racedescr()
103{
104 return "Hobbits sind kleine Wesen, die am ehesten den Menschen aehneln.\n"+
105 "Sie zeichnen sich trotz Ihrer Groesse durch ihren Mut und Standfestigkeit "+
106 "aus.\nObwohl sie viel lieber zuhause vorm warmen Kamin sitzen, sind sie "+
107 "immer\nfuer ein Abenteuer zu haben.\n";
108}
109
110int QueryAllowSelect() { return 1; }
111
112string *_query_racestring(){
113 if (QueryProp(P_GENDER) == FEMALE)
114 return ({"Hobbitfrau","Hobbitfrau","Hobbitfrau","Hobbitfrau"});
115 return ({"Hobbit","Hobbits","Hobbit","Hobbit"});
116}
117
118string _query_default_guild(){
119 return "abenteurer";
120}
121
122void FinalSetup() {
123 if(!present("pfeifchen",this_object()))
124 clone_object("/items/pfeifchen")->move(this_object(),M_NOCHECK);
125}
126
127mixed RaceDefault(string arg)
128{
129 if (!arg)
130 return 0;
131 switch(arg)
132 {
133 case P_HANDS :
134 return ({" mit pelzigen Haenden",25,({DT_BLUDGEON}) });
135 case P_BODY :
136 return 15;
137 }
138 return base::RaceDefault(arg);
139}