Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/obj/misc/bonbon.c b/obj/misc/bonbon.c
new file mode 100644
index 0000000..43bf7f5
--- /dev/null
+++ b/obj/misc/bonbon.c
@@ -0,0 +1,102 @@
+// Asrahel
+
+inherit "std/thing" ;
+
+#include <properties.h>
+#include <moving.h>
+#include <defines.h>
+#include <language.h>
+
+void geschmack()
+{
+	int num;
+	num = random (8);
+	switch(num)
+	{
+		case 0 :	
+			SetProp(P_SHORT,"Ein Orangenbonbon");
+			SetProp(P_LONG,"Ein gefuelltes Bonbon mit Orangengeschmack.\n");
+			SetProp(P_NAME,"Orangenbonbon");
+			AddId(({"orangenbonbon"}));
+			break;
+		case 1 :
+			SetProp(P_SHORT,"Ein Zitronenbonbon");
+			SetProp(P_LONG,"Ein gefuelltes Bonbon mit Zitronengeschmack.\n");
+			SetProp(P_NAME,"Zitronenbonbon");
+			AddId(({"zitronenbonbon"}));
+			break;
+                case 2 :
+			SetProp(P_SHORT,"Ein Schokoladenbonbon");
+			SetProp(P_LONG,"Ein Schokoladenbonbon, pass auf, dass es nicht schmilzt.\n");
+			SetProp(P_NAME,"Schokoladenbonbon");
+			AddId(({"schokobonbon","schokoladenbonbon"}));
+			break;
+                case 3 :
+			SetProp(P_SHORT,"Ein Pfefferminzbonbon");
+			SetProp(P_LONG,"Pfefferminze befreit den Hals und kitzelt in der Nase.\n");
+			SetProp(P_NAME,"Pfefferminzbonbon");
+			AddId(({"pfefferminzbonbon","minze","pfefferminz"}));
+			break;
+                case 4 :
+			SetProp(P_SHORT,"Ein Sahnebonbon");
+			SetProp(P_LONG,"Sehr suess und sehr klebrig.\n");
+			SetProp(P_NAME,"Sahnebonbon");
+			AddId(({"sahnebonbon"}));
+			break;
+                case 5 :
+			SetProp(P_SHORT,"Ein Karamelbonbon");
+			SetProp(P_LONG,"Ein Karamelbonbon, der Rest von Karneval?\n");
+			SetProp(P_NAME,"Karamelbonbon");
+			AddId(({"karamelbonbon"}));
+			break;
+		case 6 :
+			SetProp(P_SHORT,"Ein Anananasbonbon");
+			SetProp(P_LONG,"Ein dreieckiges Anananasbonbon, das schmeckt bestimmt ganz ananassig.\n");
+			SetProp(P_NAME,"Ananasbonbon");
+			AddId(({"ananasbonbon"}));
+			break;
+		case 7 :
+			SetProp(P_SHORT,"Ein Himbeerdrops");
+			SetProp(P_LONG,"Dieses himbeerige Fruchtbonbon ist viel groesser als eine Himbeere.\n");
+			SetProp(P_NAME,"Himbeerdrops");
+			AddId(({"drops","himbeerdrops","fruchtbonbon"}));
+			break;
+                default :
+			SetProp(P_SHORT,"Ein Multivitaminbonbon");
+			SetProp(P_LONG,"Ein Multivitaminbonbon, sehr gesund (besonders bei dem Wetter in Muenster).\n");
+			SetProp(P_NAME,"Multivitaminbonbon");
+			AddId(({"vitaminbonbon","multivitaminbonbon"}));
+			break;
+    }
+}
+
+void create()
+{
+  if (!clonep(this_object())) return;
+	::create();
+	SetProp(P_WEIGHT, 25);
+	SetProp(P_VALUE, 0);
+	SetProp(P_GENDER, NEUTER );
+	AddId("bonbon");
+	geschmack();
+}
+
+
+void init()
+{
+	::init();
+	add_action("essen","esse");
+	add_action("essen","iss");
+	add_action("essen","lutsche");
+}
+
+int essen(string str)
+{
+	notify_fail("Was moechtest Du essen?\n");
+	if ( !str || !id(str) )
+	    return 0;
+	write("Du lutschst genuesslich " + name(WEN,0) + ".\n");
+	say( PL->Name(WER,2) + " lutscht " + name(WEN,0) + ".\n");
+	remove();
+	return 1;
+}
diff --git a/obj/misc/kissen.c b/obj/misc/kissen.c
new file mode 100644
index 0000000..33c365b
--- /dev/null
+++ b/obj/misc/kissen.c
@@ -0,0 +1,128 @@
+inherit "std/thing";
+#include <properties.h>
+#include <language.h>
+
+string cstr;  
+
+init()
+{
+  int colour;
+  ::init();
+  colour = random(8);
+  if (colour==0) cstr = "gruenes";
+  if (colour==1) cstr = "rotes";
+  if (colour==2) cstr = "blaues";
+  if (colour==3) cstr = "gelbes";
+  if (colour==4) cstr = "schwarz-weiss-kariertes";
+  if (colour==5) cstr = "orange-pink-gestreiftes";
+  if (colour==6) cstr = "lila-gruen-getuepfeltes";
+  if (colour==7) cstr = "silbergraues";
+  add_action("throw_it","wirf"); 
+  add_action("ww", "ww");
+}
+
+short()
+{
+  return "Ein " + cstr + " Kissen\n";
+}
+
+long()
+{
+  return "Dies ist ein wunderschoenes, " + cstr + " Kissen.\n"+
+          "Du kannst versuchen es zu werfen.\n";
+}
+
+create()
+{
+  ::create();
+  cstr = "von Boing handgenaehtes";
+  AddId("kissen");
+  SetProp(P_WEIGHT, 1);
+  SetProp(P_VALUE, 1);
+  SetProp(P_NAME, "Kissen");
+  SetProp(P_GENDER, 0);
+}
+
+ww(str)
+{
+  if (str)
+    return throw_it("kissen nach "+str);
+  else
+  {
+    object *all, *liv;
+    int i;
+
+    all=all_inventory(environment(this_player()));
+    for (i=0; i<sizeof(all); i++)
+      if (query_once_interactive(all[i]))
+        if (!liv)
+	  liv = ({all[i]});
+        else
+          liv = liv+({all[i]});
+    i = random(sizeof(liv));
+    return throw_it("kissen nach "+lower_case(liv[i]->query_real_name()));
+  }
+}
+
+throw_it(str)
+{
+  int treffer;
+  string werfer_name;
+  string victim_string,werfer_string;
+  string was,at,wen;
+  int fehler;
+  object victim;
+
+  if (!str) return 0;
+  fehler = 0;
+  if (sscanf(str,"%s %s %s",was,at,wen) != 3)
+    fehler = 1;
+  if (!id(was) || at != "nach")
+    fehler = 1;
+  if (fehler)
+  { 
+     notify_fail("Zum Werfen: wirf kissen nach <spielername>\n");
+     return 0;
+  }
+  victim = present(wen,environment(this_player()));
+  if (!victim)
+  { 
+     write("Dieser Spieler ist nicht hier!\n");                                
+     return 1;                                                                 
+  }                                                                           
+  werfer_name = this_player()->name();
+  treffer = random(5);
+  write("Du schmeisst ein Kissen nach " + victim->name(WEM) +".\n");
+  say(werfer_name + " wirft ein Kissen nach " + victim->name(WEM) + ".\n");
+  if (treffer==0)
+  {
+    werfer_string = "Du verfehlst " + victim->name(WEN) + " meilenweit.\n";
+    victim_string = werfer_name + " verfehlt Dich meilenweit.\n";
+    this_object()->move(environment(this_player()));
+  }
+  if (treffer==1)
+  {
+    werfer_string = "Das Kissen streift " + victim->name(WEN)+ " am Ohrlaeppchen.\n";
+    victim_string = "Das Kissen streift Dich am Ohrlaeppchen.\n";
+  }
+  if (treffer==2)
+  {
+    werfer_string = "PAFF! Du triffst " + victim->name(WEN) + " mitten ins Gesicht.\n";
+    victim_string = "PAFF! Das Kissen trifft Dich mitten im Gesicht!\n";
+  }
+  if (treffer==3)
+  {
+    werfer_string = "WUSCH! Das Kissen trifft " + victim->name(WESSEN) + " Bauch mit voller Wucht.\n";
+    victim_string = "WUSCH! Das Kissen fliegt mit voller Wucht gegen Deinen Bauch.\n";
+  }
+  if (treffer==4)
+  {
+    werfer_string =  victim->name() + " versucht wegzurennen, doch das Kissen trifft den Hinterkopf.\n";
+    victim_string = "Du versuchst wegzurennen, aber das Kissen trifft Dich am Hinterkopf.\n";
+  }
+  write(werfer_string);
+  tell_object(victim,victim_string);
+  if (treffer) this_object()->move(victim);
+  return 1;
+}
+
diff --git a/obj/misc/lolli.c b/obj/misc/lolli.c
new file mode 100644
index 0000000..6b8278e
--- /dev/null
+++ b/obj/misc/lolli.c
@@ -0,0 +1,29 @@
+inherit "std/thing";
+#include <properties.h>
+#include <language.h>
+
+void create()
+{
+   // Laeden erwarten Short und Value in der Blueprint.
+   SetProp(P_SHORT, "Ein Lolli");
+   SetProp(P_VALUE, 5);
+   
+  if (!clonep(this_object())) return;
+   ::create();
+   SetProp(P_SHORT, "Ein Lolli");
+   SetProp(P_NAME, "Lolli");
+   SetProp(P_GENDER, MALE);
+   SetProp(P_LONG, "Ein leckerer Lolli, Du kannst ihn schlecken.\n");
+   AddId("lolli");
+   SetProp(P_WEIGHT, 10);
+   AddCmd( ({"schleck","schlecke","leck","lecke"}), "schleck" );
+}
+
+int schleck(string str)
+{
+   notify_fail("Was moechtest Du schlecken?\n");
+   if (!str || !id(str)) return 0;
+   write("Du schleckst an Deinem Lolli. Er schmeckt ausgezeichnet.\n");
+   say(this_player()->name()+" schleckt an "+this_player()->QueryPossPronoun(this_object(), WEM)+" Lolli.\n");
+   return 1;
+}
diff --git a/obj/misc/tuete.c b/obj/misc/tuete.c
new file mode 100644
index 0000000..e7173bd
--- /dev/null
+++ b/obj/misc/tuete.c
@@ -0,0 +1,47 @@
+//Asrahel
+
+inherit "std/thing" ;
+
+#include <properties.h>
+#include <moving.h>
+#include <defines.h>
+#include <language.h>
+
+void create()
+{
+  if (!clonep(this_object())) return;
+  ::create() ;
+
+  SetProp( P_SHORT, "Eine Tuete Bonbons" ) ;
+  SetProp( P_LONG, "Eine magische Bonbontuete. So oft Du auch hineingreifst, sie wird niemals leer\n"
+		+  "und enthaelt immer eine bunte Mischung.\n");
+
+  SetProp( P_WEIGHT, 0 ) ;
+  SetProp( P_NOBUY, 1) ;
+  SetProp( P_NODROP, "Nein, Du willst doch nicht dieses Geschenk weggeben !?\n");
+  SetProp( P_NEVERDROP, 1) ;
+  SetProp( P_NAME, "Tuete") ;
+  SetProp( P_GENDER, FEMALE ) ;
+  AddId( ({ "bonbontuete","tuete", "bonbons" }) ) ;
+  SetProp(P_AUTOLOADOBJ, 1);
+
+}
+
+void init()
+{
+	::init();
+	add_action("naschen","greife");
+	add_action("naschen","greif");
+}
+
+int naschen (string str)
+{
+  notify_fail("Wohinein moechtest Du greifen ?\n");
+	if ( str != "tuete" && str != "in tuete" && str != "bonbons" && str != "in bonbontuete")
+		 return 0;
+	write("Du greifst in Deine Tuete und holst ein Bonbon heraus.\n");
+	say( PL->name(WER,2) + " holt ein Bonbon aus einer Tuete.\n");
+	clone_object("obj/misc/bonbon")->move(PL);
+	return 1;
+}
+
diff --git a/obj/misc/wuerfel.c b/obj/misc/wuerfel.c
new file mode 100644
index 0000000..d5ccb69
--- /dev/null
+++ b/obj/misc/wuerfel.c
@@ -0,0 +1,30 @@
+inherit "std/thing";
+
+#include <language.h>
+#include <properties.h>
+
+void create()
+{
+  // Short und Value werden von Laeden in der Blueprint erwartet
+  SetProp(P_SHORT, "Ein Wuerfel");
+  SetProp(P_VALUE, 1);
+  
+  if (!clonep(this_object())) return;
+  ::create();
+  SetProp(P_LONG, "Ein Wuerfel mit 6 Seiten.\n");
+  SetProp(P_NAME, "Wuerfel");
+  SetProp(P_GENDER, MALE);
+  SetProp(P_WEIGHT, 1);
+  AddId("wuerfel");
+	AddCmd("wuerfel","wuerfel");
+}
+
+int wuerfel(string str)
+{
+  int zahl;
+
+  zahl = random(6) + 1;
+  write("Du wuerfelst eine " + zahl + ".\n");
+  say(this_player()->name() + " wuerfelt eine " + zahl + ".\n");
+  return 1;
+}