Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/doc/lfun/DefendFunc b/doc/lfun/DefendFunc
new file mode 100644
index 0000000..7043e04
--- /dev/null
+++ b/doc/lfun/DefendFunc
@@ -0,0 +1,78 @@
+DefendFunc(L)
+
+FUNKTION:
+     int DefendFunc(string|string *dtyp, int|mappingspell, object enemy);
+
+DEFINIERT IN:
+     eigenen Objekten; fuer /std/armour/combat.c
+
+ARGUMENTE:
+     dtyp
+          Schadenstypen der Angriffsart.
+          Sollte heute ein string* sein.
+     spell
+          0 bei veralteten konventionellen Angriffen im Regelfall jedoch
+          ein Mapping mit weiteren Infos.
+          Bei einem konventionellen Angriff ist spell[SP_PHYSICAL_ATTACK] gleich
+          1.
+     enemy
+          Der angreifende Gegner
+
+BESCHREIBUNG:
+     Anhand der uebergebenen Parameter kann hier ein Ruestungsbonus (oder
+     auch ein Ruestungsmalus) errechnet werden, der zu dem normalen
+     Ruestungswert (abhaengig von der Angriffsart) hinzuaddiert wird.
+
+RUeCKGABEWERT:
+     Der Ruestungsbonus, der zur Ruestungsklasse addiert werden soll.
+
+BEMERKUNGEN:
+     Auch wenn man eine DefendFunc() benutzt, darf der Rueckgabewert
+     zusammen mit der P_AC insgesamt nur in sehr seltenen, wohldurch-
+     dachten Ausnahmefaellen die maximal zulaessige P_AC fuer diesen
+     Ruestungstyp ueberschreiten. In solchen Ausnahmefaellen duerfen
+     die DefendFuncs nicht konstant wirken.
+
+     Bei aktivem Zurueckschlagen IMMER auf Flags wie SP_RECURSIVE und
+     SP_NO_ACTIVE_DEFENSE pruefen und ggf. abbrechen.
+
+BEISPIELE:
+     Eine Ruestung, die bei Angriffen mit Feuer ihre volle Staerke entfaltet
+     und bei Angriffen durch Geister geschwaecht wird:
+
+     void create()
+     {
+       ::create();
+
+       SetProp(P_ARMOUR_TYPE, AT_ARMOUR);
+       SetProp(P_AC, 20);
+       ...
+       // Die DefendFunc() ist in der Ruestung selbst definiert
+       SetProp(P_DEFEND_FUNC, this_object());
+     }
+
+     int DefendFunc(string *dtyp, mixed spell, object enemy)
+     {
+       int prot;
+
+       // Zuerst fragen wir den Angriff durch Feuer ab:
+       if (member(dtyp, DT_FIRE) >= 0)  // Feuer gehoert zu den Schadenstypen
+         prot = 5 + random(10); // Das ergibt maximal 14. Zusammen mit P_AC
+                                // kommt man also maximal auf 14+20 = 34,
+                                // liegt also unter der fuer AT_ARMOUR
+                                // geltenden Obergrenze
+
+       // Und jetzt der Geistertest
+       if (enemy->QueryProp(P_RACE) == "Geist" ||
+           enemy->is_class_member(CL_GHOST))
+         prot -= random(10);
+
+       // Der Rueckgabewert wird auf den aus P_AC errechneten Wert draufgeschlagen
+       return prot;
+     }
+
+SIEHE AUCH:
+     P_DEFEND_FUNC, QueryDefend(), /std/armour/combat.c
+
+----------------------------------------------------------------------------
+Last modified: 18.Jul 2006 Muadib