Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/doc/wiz/gift b/doc/wiz/gift
new file mode 100644
index 0000000..a2c4d9e
--- /dev/null
+++ b/doc/wiz/gift
@@ -0,0 +1,132 @@
+Krankheiten, Gifte und Flueche
+==============================
+
+ Einmal abgesehen vom einfachen Setzen von P_POISON im Spieler lassen
+ sich Gifte und Krankheiten auch als Objekte ausprogrammieren, die dem
+ Spieler in mehr oder weniger regelmaessigen Abstaenden Lebenspunkte
+ abziehen. Auch Flueche koennen nicht nur als P_CURSED in Waffen und
+ Ruestungen, sondern auch als Objekte vorliegen, und dem Spieler das
+ Leben schwermachen
+
+ Um ein Objekt als Gift zu kennzeichnen, wird die Klasse CL_POISON
+ gesetzt, fuer eine Krankheit ist CL_DISEASE und fuer einen Fluch
+ CL_CURSE zu setzen (mit AddClass, siehe dort). Zusaetzlich wird die
+ Schwere der Erkrankung bzw. Vergiftung in der Property P_LEVEL
+ abgelegt, wobei P_LEVEL einen Wert zwischen 1 und 100 haben sollte.
+ Mitglieder der Klerikergilde und andere Heiler koennen dann je nach
+ P_LEVEL den betroffenen Spieler mehr oder weniger gut heilen. (Kleriker
+ koennen CL_POISON-Vergiftungen heilen, einige Heiler jedoch nicht.)
+
+ Eine eindeutige Unterscheidung zwischen Giften, Krankheiten und
+ Fluechen zu treffen, ist schwer, denn die Grenzen verschwimmen.
+ Trotzdem hier eine grobe Klassifizierung:
+
+ Gifte : bringt der Spieler sich meist selbst bei (in dem er z.B.
+ einen giftigen Pilz isst). Oft auch sind die Stellen, wo
+ ein Spieler sich vergiften kann, irgendwie gekennzeichnet,
+ so dass eine Vergiftung umgangen werden kann.
+
+ Bei Giften wird durch das Heilen der Level des Giftobjekts
+ abhaengig vom Erfolg gesenkt. Ist der Level <= 0, wird das
+ Objekt vom Kleriker-Spellbook entfernt. Heiler sollten das
+ aehnlich machen. Logisch waere es daher, den Schaden, den das
+ Objekt macht, vom momentanen Level abhaengig zu machen.
+
+ Krankheit: werden dem Spieler durch Fremdeinwirkung beigebracht, auch
+ durch Ansteckung bei einem anderen Spieler oder NPC.
+ Bei ansteckenden Krankheiten ist auf die Ansteckrate zu achten
+ und darauf, dass die Krankheit mit der Zeit auch wieder
+ ausstirbt. Also entweder bei jeder Generation der Krankheit
+ das Ansteckungsrisiko senken oder einmal infizierte Spieler
+ immunisieren. Es sollten sich 2 idelnde Spieler nicht immer
+ wieder gegenseitig bis in alle ewig anstecken koennen. Auch
+ ist darauf zu achten, dass Netztote nicht angesteckt werden
+ koennen bzw. Netztote niemanden anstecken, da sich sonst die
+ Krankheit im Netztotenraum verbreiten kann.
+
+ Das Heilen geschieht im Kleriker-Spellbook wie bei Gift.
+
+ Flueche: werden wie Krankheiten durch Fremdeinwirkung beigebracht
+ (der Spieler wird halt verflucht). Ausserdem ist die Wirkung
+ von Fluechen oft nicht auf einfaches Abziehen von Lebenspunkten
+ beschraenkt, sondern der Spieler kann z.B. nicht mehr richtig
+ sprechen (Sprachfluch ueber P_PERM_STRING), ist in der Bewegung
+ eingeschraenkt oder greift wahllos NPCs an.
+
+ Hier ist das Entfluchen durch einen Kleriker anders. Findet
+ das Spellbook ein CL_CURSE-Objekt im Inv des Spielers, wird
+ gegen das Level des Objekt gewuerfelt. Bei Erfolg wird das
+ Objekt entfernt, bei Misserfolg passiert nichts!
+
+ Als Anhaltspunkte fuer den Level:
+ - < Level 10 sind einfach zu entfluche
+ - 10 - 20 sind fuer kleine Kleriker schon enorm schwierig
+ fuer max. Kleriker gut zu entfluchen.
+ - ueber 20 gelingt es auch einem max. Kleriker nicht immer
+ beim ersten mal.
+ - ab 30 muss der max. Kleriker schon mal tanken gehen
+ - Ueber Level 40 liegt die Chance schon im Promillebereich!!!
+ - Level 100 laesst sich ueberhaupt nicht mehr entfluchen.
+
+ Will man dem Spieler also eine reelle (und nicht nur
+ mathematische) Chance lassen, sollte der Fluchlevel unter 40
+ bleiben.
+
+ Das Schadensobjekt selbst ist unsichtbar, meist autoload und loest die
+ Schadensfunktion ueber Callouts aus.
+
+ BEISPIEL:
+ Hier ein Beispiel fuer einen Giftpilz (gefunden bei Silvana, in
+ /d/dschungel/silvana/weg/obj/pilz.c):
+ ----------------------------------------------------------------------
+ #pragma strong_types
+ #include "../pfad.h"
+
+ inherit "/std/thing";
+
+ void create() {
+ if(!clonep(TO)) {
+ set_next_reset(-1);
+ return;
+ }
+ ::create();
+
+ SetProp(P_SHORT,0);
+ SetProp(P_INVIS,1);
+ SetProp(P_LONG,0);
+ SetProp(P_NODROP,1);
+ SetProp(P_NEVERDROP,1);
+ SetProp(P_AUTOLOADOBJ,1);
+ SetProp(P_WEIGHT,0);
+ SetProp(P_NAME,"Pilzvergiftung");
+ SetProp(P_KILL_NAME,"Eine Pilzvergiftung");
+ SetProp(P_GENDER,FEMALE);
+ SetProp(P_ARTICLE,1);
+ SetProp(P_LEVEL,10);
+ call_out("next_step",2);
+ AddClass(CL_POISON);
+ }
+
+ void next_step();
+
+ void next_step() {
+ object pl;
+ if(!(pl=TOE) || !query_once_interactive(pl) ||
+ pl->QueryProp(P_GHOST)){
+ remove();
+ return ;
+ }
+ call_out(#'next_step ,5);
+ if(!interactive(pl)) return;
+ tell_object(pl,
+ "Dein Bauch schmerzt. Du windest Dich in Kraempfen.\n");
+ if(ENV(pl)) tell_room(ENV(pl),
+ pl->Name()+" windet sich vor Schmerzen am Boden.\n",({ pl }));
+ pl->do_damage(QueryProp(P_LEVEL)*2 + random(10),TO);
+ }
+
+ SIEHE AUCH:
+ P_POISON, P_CURSED, P_PERM_STRING
+
+ LETZTE AeNDERUNG:
+ 11.08.2007, Zesstra