Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/std/shells/orc.c b/std/shells/orc.c
new file mode 100644
index 0000000..95c73f6
--- /dev/null
+++ b/std/shells/orc.c
@@ -0,0 +1,203 @@
+#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 <defines.h>
+#include <defuel.h>
+
+/*
+ * Orks:
+ * Orks sind eigentlich boese und blutruenstig, was auch oft genug zum 
+ * Vorschein tritt :) Wenn ein Ork zu heftig forscht, quengelt er rum 
+ * und weigert sich, bis er nicht wieder ein bisschen Blut verspritzt
+ * hat,
+*/ 
+#define F_MAX 500
+#define F_DEG 3 
+#define NO_EXAMINE ({ \
+    "Du knurrst: Ich will Blut, keine Bluemchen.", \
+    "Du grummelst: Bin ich ein Forscher, oder was?" \
+    })
+
+static int f_cnt, f_deg;
+
+int 
+QueryFCnt() {
+  return f_cnt;
+}
+
+int 
+SetFCnt(int fc) {
+  if(fc > -1 && fc < F_MAX)
+    f_cnt = fc;
+  return f_cnt;
+}
+  
+int
+QueryFDeg() {
+  return f_deg;
+}
+
+void 
+create() {
+  if (!clonep() || object_name(this_object()) == __FILE__[0..<3]) {
+      set_next_reset(-1);    
+      return;
+  }
+
+  mixed res;
+
+  base::create();
+
+  f_cnt=0;
+  f_deg=F_DEG;
+  
+  SetDefaultHome("/d/vland/morgoth/room/city/rathalle");
+  SetDefaultPrayRoom("/d/vland/morgoth/room/city/c0606");
+  SetProp(P_ATTRIBUTES_OFFSETS,([A_STR:3,A_INT:-1,A_CON:2]));
+  /* Kleine aeh grosse Muskelpakete */
+  SetProp(P_SKILL_ATTRIBUTE_OFFSETS,([SA_DAMAGE:110]));
+  SetProp(P_AVERAGE_SIZE,195);
+  SetProp(P_AVERAGE_WEIGHT,125000); // ziemlich schwer, viele Muskeln
+  SetProp(P_MATERIAL_KNOWLEDGE,([MATGROUP_DEAD:60,
+                                 MATGROUP_BIO:40, 
+                                 MATGROUP_ELEMENTAL: 20, 
+                                 MAT_BLOOD:100]));
+  SetProp(P_CHANNELS, QueryProp(P_CHANNELS) + ({"Uruk-Hai"}));
+  SetProp(P_RESISTANCE_STRENGTHS,
+	  ([ 
+     DT_FIRE : -0.2,
+     DT_HOLY :0.3,
+     DT_UNHOLY : -0.2,
+	   DT_ACID : 0.2 ]));
+
+  SetProp(P_MAX_FOOD,110);
+  SetProp(P_MAX_DRINK,110);
+  SetProp(P_MAX_ALCOHOL,150);
+  SetProp(P_DEFUEL_LIMIT_FOOD,50);
+  SetProp(P_DEFUEL_LIMIT_DRINK,70);
+  SetProp(P_DEFUEL_TIME_FOOD,300);
+  SetProp(P_DEFUEL_TIME_DRINK,400);
+  SetProp(P_DEFUEL_AMOUNT_FOOD,0.4);
+  SetProp(P_DEFUEL_AMOUNT_DRINK,0.35);
+
+  /* SP regenerieren sie nich ganz so schnell, dafuer sind sie
+   * ein bischen schneller bei Gift und Futter */
+  SetProp(P_SP_DELAY,HEAL_DELAY+1);
+  SetProp(P_POISON_DELAY,POISON_DELAY-1);
+  SetProp(P_FOOD_DELAY,FOOD_DELAY-1);
+
+  SetProp(P_MAGIC_RESISTANCE_OFFSET,
+          ([ MT_ANGRIFF : 500,
+        	   MT_ILLUSION : -250,
+             MT_BEHERRSCHUNG : -250,
+        	   MT_VERWANDLUNG : 500 ]));
+
+
+  if(!(res=QueryProp(P_HANDS)) || !pointerp(res) || (sizeof(res)<3))
+    res=({" mit starken Haenden",35,({DT_BLUDGEON, DT_RIP}) });
+  SetProp(P_HANDS,res);
+  /* Orks haben dicke Haut */
+  SetProp(P_BODY,20);
+
+  /* Groesse wird nur einmal gesetzt */
+  if(!QueryProp(P_SIZE)){
+    SetProp(P_SIZE,180+random(31));
+    Set(P_SIZE,SAVE,F_MODE_AS);
+  }
+
+  /* Dito Gewicht */
+  if(!QueryProp(P_WEIGHT) || (QueryProp(P_WEIGHT) == 75000)){
+    SetProp(P_WEIGHT,100000+random(25001)+random(25001));
+    Set(P_WEIGHT,SAVE,F_MODE_AS);
+  }
+}
+
+string 
+_query_race() {
+  return "Ork";
+}
+
+string 
+_query_real_race() {
+  return "Ork";
+}
+
+string 
+_query_racedescr() {
+  return break_string("Ein Ork. Die brutale Macht des Boesen. Ein "
+      "erbitterter Kaempfer, ohne Furcht vor dem Tod. So stellst Du "
+      "Dir einen Ork vor.\nDiese Orks sehen vielleicht ausserlich so "
+      "aus: Eine dicke und dunkle, lederartige Haut, die sicher "
+      "einiges an Schlaegen abhaelt. Lange Eckzaehne, die sicher boese "
+      "Wunden reissen koennen.\nDu spuerst, dass diese Orks hier ein "
+      "wenig anders sind. Ihren Drang nach dem Blut ihrer Feinde scheinen "
+      "sie recht gut unter Kontrolle zu haben, die meiste Zeit zumindest. "
+      "Sie sind in der Lage, friedlich zwischen den anderen Rassen zu "
+      "wandeln. Dennoch sind vor allem die Uruk-Hai Orks als Gegner nicht "
+      "zu unterschaetzen, sollte es doch einmal zu einem Kampf kommen.",
+      78,0,BS_LEAVE_MY_LFS);
+}
+
+int 
+QueryAllowSelect() { 
+  return 1; 
+}
+
+string 
+*_query_racestring() {
+  if (QueryProp(P_GENDER)==FEMALE)
+    return ({"Orkin","Orkin","Orkin","Orkin"});
+  return ({"Ork","Orkes","Ork","Ork"});
+}
+
+string 
+_query_default_guild(){
+  return "urukhai";
+}
+
+mixed 
+RaceDefault(string arg) {
+  if (!arg)
+    return 0;
+  switch(arg) {
+    case P_HANDS :
+      return ({" mit starken Haenden",35,({DT_BLUDGEON,DT_RIP}) });
+    case P_BODY :
+      return 25;
+  }
+  return base::RaceDefault(arg);
+}
+
+protected void heart_beat() {
+  ::heart_beat();
+
+  if(f_cnt > 0 && !--f_deg) {
+    f_cnt--;
+    f_deg=F_DEG;
+  }
+}
+
+void
+Attack(object enemy) {
+  if(f_cnt > 0)
+    f_cnt--;
+  return ::Attack(enemy);
+}
+
+varargs int 
+_examine(string str, int mode) {
+
+  if(++f_cnt > F_MAX) {
+    tell_object(this_object(),break_string(NO_EXAMINE[random(sizeof(NO_EXAMINE))],78));
+    return 1;
+  }
+  return ::_examine(str,mode);
+}