Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/std/shells/dwarf.c b/std/shells/dwarf.c
new file mode 100644
index 0000000..7a696dc
--- /dev/null
+++ b/std/shells/dwarf.c
@@ -0,0 +1,156 @@
+// 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;
+}