
  Vererbungsbaeume der Basis-MUDlib
  =================================

Einfache Gegenstaende
---------------------

Die einfachsten Objekte der Basis-MudLib. Die Module, die von thing.c
geerbt werden, enthalten die wichtigsten Funktionen und treten auch in
den anderen Standardobjekten immer wieder auf.

Da die Ausgabe des Namens eines Objektes (dieser wird in den
description-Modulen definiert) immer mit einer Deklination verbunden ist,
findet man in jedem Objekt, welches ein description.c erbt, auch
thing/language.

thing
  |- thing/properties    | Verwaltungsfunktionen des Property-Systems
  |- thing/description   | Aussehen, Name, IDs des Objektes
  |- thing/moving        | Bewegen und Zerstoeren des Objektes
  |- thing/language      | Deklination von Namen, Adjektiven etc.; Pronomina
  |- thing/commands      | vom Objekt definierte Kommandos
  `- thing/restrictions  | Gewicht: standardmaessig 1Kg


Ruestungen
----------

Bis auf thing/restrictions.c verfuegt armour.c ueber saemtliche Funktionalitaet
die auch thing.c zur Verfuegung stellt. Zusaetzlich gibt es noch ein Modul,
welches die Ruestung erst zur Ruestung macht: armour/combat.c

armour                  | evtl. ein "(angezogen") an Kurzbeschreibung haengen
  |- thing/properties   | Auch Ruestungen haben Eigenschaften
  |- thing/description  | Aussehen, Name, IDs der Ruestung
  |- thing/commands     | Kommandos sind auch moeglich
  |- armour/moving      | Beim Bewegen/Zerstoeren: Ruestung ausziehen...
  |    `- thing/moving  | ...und dann erst Bewegen/Zerstoeren
  |- armour/combat      | Ruestungsklasse/-typ, Kampffunktion
  `- thing/language     | und noch was zum deklinieren.


Waffen
------

Wie Ruestungen, unterscheiden sich Waffen von einfachen Gegenstaenden im
wesentlichen nur durch die Kampffunktionen.

weapon                  | evtl. ein "(gezueckt)" an Kurzbeschreibung haengen
  |- weapon/moving      | Waffe beim Bewegen/Zerstoeren erst wegstecken...
  |    `- thing/moving  | ...und dann erst bewegen/zerstoeren
  |- thing (s.o.)       | Ansonsten alle thing-Eigenschaften
  `- weapon/combat      | Waffenklasse/-art, Schadenstyp, Kampffunktion


Lichtquellen
------------

Lichtquellen sind (im Sinne der MudLib) normale Gegenstaende, die zusaetzlich
die Eigenschaft haben, dass sie leuchten koennen (und auch verbrennen koennen).

lightsource       | Alles, was zum Leuchten noetig ist
  `- thing (s.o.) | ansonsten ein ganz normaler Gegenstand


unit-Objekte
------------

unit-Objekte sind Gegenstaende, bei denen es sinnvoll ist, dass ein einzelnes
Objekt eine gewisse Anzahl von gleichartigen Objekten repraesentiert. Das
beste Beispiel hierfuer ist das liebe Geld: statt 1000 einzelner Muenzen im
Inventory zu haben, hat man nur ein einziges Geldobjekt, das einer Menge von
1000 Muenzen entspricht (die bei Kauf-/Verkaufsaktionen um eine entsprechende
Menge erniedrigt oder erhoeht wird).
Hierdurch wird a) die Uebersichtlichkeit erhoeht und b) natuerlich massig
Speicher gespart.

unit               | alle unit-Eigenschaften (Gewicht, Menge, Bewegen, ...)
  `- thing (s.o.)  | ansonsten sind es normale Gegenstaende


Spellbooks
----------

Fuer Gildenprogrammierer ist dies das Grundobjekt fuer das Zauberverzeichnis
der Gilde.
ACHTUNG: Obwohl thing.c geerbt wird, ist das Spellbook nicht zum clonen und
"unter den Arm klemmen" gedacht! Vielmehr stellt thing.c hier im wesentlichen 
nur das Property- und das Sprachmodul zur Verfuegung!

spellbook                | Allgemeine Funktionen fuer Zaubersprueche
  |- thing (s.o.)        | hier nur wg. Properties und Deklinationen
  `- restriction_checker | fuer Einschraenkungen beim Zaubern


Behaelter
---------

Die bisher beschriebenen Objekte kann man zwar mit sich herumtragen (ausser
Spellbooks), aber man kann nichts hineinstecken. Hierzu sind einige weitere
Funktionen noetig, die container.c zur Verfuegung stellt.
Im wesentlichen sind das in container/restrictions.c Funktionen zum Aus-
waehlen von Objekten im Behaelter, zum Testen, ob der Behaelter noch weitere
Objekte aufnehmen kann (gewichtsabhaengig) und zur Ermittlung des Gesamt-
gewichts des Behaelters.
In container/description.c wird der Inhalt des Behaelters in eine Beschreibung
umgewandelt.

container
  |- thing/properties        | DAS zentrale Modul...
  |- thing/moving            | Bewegen/Zerstoeren des Behaelters
  |- thing/commands          | Kommandos sind moeglich
  |- container/description   | Beschreibung des Inhalts
  |    `- thing/description  | Lang- und Kurzbeschreibung
  |- thing/language          | Deklinationsmodul
  `- container/restrictions  | Gesamtgewicht, Objektauswahl
       `- thing/restrictions | Standardgewicht: 1Kg

Leichen
-------

Leichen sind Behaelter mit der zusaetzlichen Eigenschaft, dass sie mit der
Zeit zerfallen. Ausserdem geben sie ggf. noch eine Meldung ueber den
Moerderkanal aus

corpse                | Zerfallen, Moerdermeldung
  `- container (s.o.) | sonst normaler Behaelter


Raeume und ihre Abkoemmlinge
----------------------------

Raeume sind prinzipiell Behaelter mit Lang- und Kurzbeschreibung von INNEN
und weiteren untersuchbaren Details (auch lesbare Details) sowie
Ausgaengen und der Moeglichkeit vordefinierte Objekte im Raum zu plazieren.

room
  |- thing/properties     | Eigenschaften des Raumes
  |- thing/language       | das obligatorische Sprachmodul
  |- room/moving          | nur Zerstoeren; KEIN(!) Bewegen
  |- room/restrictions    | Raeume werden nie voll
  |    `- container/restrictions  | sonst die gleiche Funktionalitaet wie
  |	    `- thing/restrictions | beim normalen Behaelter
  |- room/description     | Raumbeschreibung, Details, etc.
  |    `- container/description   | Beschreibung des Inhalts
  |	    `- thing/description  | Beschreibung von aussen (selten sichtbar)
  |- room/exits           | Verwaltung der Ausgaenge
  |- room/commands        | notify_fail()s fuer "lies", "suche", "such"
  |    `- thing/commands  | sonst normale Kommandobehandlung
  |- room/items           | Verwaltung von Objekten, die im Raum sein sollen
  `- room/doors           | Tueren (besondere Ausgaenge)


Die Kneipe erweitert den Standardraum um Funktionen zur Definition der
Speisen und Getraenke sowie um Befehle zum Bestellen und Ausgeben.

pub
  `- room (s.o.)


Auch der Laden baut direkt auf dem Standardraum auf. Hier werden noch die
ueblichen Ein- und Verkaufsbefehle zur Verfuegung gestellt.
Jeder Laden benoetigt zusaetzlich einen Speicher, in dem verkaufte Objekte
gelagert werden. Wenn der Laden schon beim ersten Betreten ueber ein
gewisses Warensortiment verfuegen soll, kann man die mit AddItem()-Aufrufen
im Speicher bewerkstelligen.

laden
  `- room (s.o.)

store
  |- thing/properties  | noetig fuer room/items.c
  `- room/items        | vordefinierte Objekte im Speicher


Die Post ist von der Programmierung her genau so zu behandeln wie ein
normaler Raum. Die Postkabinen werden automatisch zur Verfuegung gestellt;
man braucht sich in der Hinsicht um nichts zu kuemmern.

post
  `- (...) room


Schiffe und aehnliche Transporter werden durch "bewegliche" Raeume realisiert.
So hat man alle Beschreibungsmoeglichkeiten eines Raumes zur Verfuegung und
kann (wie bei der Jolle geschehen) Ausgaenge in weitere Raume des Transporters
legen (diese sind normale Raeume, KEINE Transporter!).
Desweiteren sind Transporter die einzigen (Standard-)Raume, bei denen man
auch die aeussere Lang- und Kurzbeschreibung zu sehen bekommt, weil man
nicht nur in einem Transporter sein kann, sondern auch daneben stehen kann.

transport         | Funktionen zur Festlegung der Route, An- und Ablegen
  |- room (s.o.)  | die normalen Raumfunktionen
  `- thing/moving | und hier steckt die Beweglichkeit


Gilden
------

Gilden gibt es in zwei Ausfuehrungen: einmal als einfaches Gildenobjekt, dann
aber auch als Gildenraum (wie zB. die Abenteurergilde).
Waehrend das Gildenobjekt (gilden_ob) Funktionen zum Lernen von Faehigkeiten
und Zauberspruechen, dem Gildenein- und -austritt sowie zum gildeninternen
Aufstieg zur Verfuegung stellt (was zB. auch von einem NPC ausgeuebt werden
koennte), verfuegt der Gildenraum zusaetzlich noch ueber Funktionen zum
normalen Stufenaufstieg aufgrund von Abenteuer- und Erfahrungspunkten, die
Questliste und die Kostenabfrage.

gilden_ob                | Ein-/Austritt, Lernen, Gildenaufstieg
  `- restriction_checker | Beschraenkungen bei obigen Aktionen

gilden_room
  |- gilde               | Stufenaufstieg, Questliste, Kosten
  |    `- room (s.o.)    | normale Raumfunktionen
  `- gilden_ob (s.o.)    | Gildenaufstieg etc.

NPCs
----

Das Opfer. Zumindest meistens...

npc
  |- thing/properties            | Eigenschaften des NPC
  |- living/description          | Ausgabe des Gesundheitszustandes...
  |    `- container/description  | ...zusaetzlich zu seinem Inhalt...
  |	    `- thing/description | ...und seiner Beschreibung
  |- living/life                 | Die Lebensfunktionen, Essen, Trinken, Gift
  |- living/attributes           | Die Verwaltung der Stats
  |- living/moving               | Bewegen von Lebewesen
  |- living/skills               | Funktionen fuer Faehigkeiten und Sprueche
  |    `- living/std_skills      | und einige Standardfaehigkeiten
  |- npc/combat                  | NPC-spezifische Kampffunktionen
  |    `- living/combat          | der Kampf an sich
  |- npc/chat                    | Sprueche a la Andy
  |- npc/comm                    | Basiskommunikation: "sag", "echo", "emote"
  |- container/restrictions      | wie bei Behaeltern
  |    `- thing/restrictions
  |- thing/language              | obligatorisch...
  |- npc/info                    | Antworten auf Fragen
  |- npc/put_and_get             | Reaktion auf erhaltene Gegenstaende
  |    `- living/put_and_get     | Geben und Nehmen von Objekten
  `- npc/guard                   | fuer Wach-NPCs

Der intelligente NPC befindet sich noch in der Entwicklung.

inpc
  |- npc (s.o.)  | Erst mal ein ganz normaler NPC...
  |- inpc/nobank | ...der gegen Bankzweitis vorgehen kann...
  |    `- player/moneyhandler | ...und selbst Geld mitschleppt; ...
  |- select      | ...die beste Ausruestung erkennt und auch benutzt...
  `- boozing     | ...und in der Kneipe die beste Heilmoeglichkeit findet!


Spieler- und Magiershell
------------------------

shells/magier                  | Hier auch noch Spielershells:
  |- player/base               | Einloggen, Grundfunktionen
  |    |- player/restrictions  | Maximale Zuladung (Staerke), InsertHooks
  |    |    `- container/restrictions   | Maximalgewicht, Zuladungstest
  |    |	 `- thing/restrictions  | Defaultgewicht
  |    |- living/attributes    | Stats
  |    |- living/combat        | Kampffunktionen
  |    |- living/put_and_get   | Nehmen und Geben von Objekten
  |    |- thing/properties     | DAS zentrale Modul...
  |    |- thing/language       | Deklinationen
  |    |- player/description   | Waffe/Ruestungen ausgeben
  |    |    `- living/description           | Gesundheitszustand anzeigen
  |    |	 `- container/description   | Ermittlung des Inhalts
  |    |	      `- thing/description  | Kurz- und Langbeschreibung; IDs
  |    |- player/moving        | Bewegen/Zerstoeren: Zusatzchecks
  |    |    `- living/moving   | Bewegen/Zerstoeren von Lebewesen
  |    |- player/life          | Zusatzchecks bei Lebensfunktionen
  |    |    `- living/life     | allgemeine Lebensfunktionen
  |    |- player/comm          | allgemeine Kommunikation
  |    |    `- player/channel  | Kommunikation ueber die Kanaele
  |    |- player/moneyhandler  | Geldverwaltung (auch fuer NPCs geeignet)
  |    |- player/command       | Aliase, History, Parser
  |    |- living/skills        | allg. Faehigkeitsfunktionen
  |    |    `- living/std_skills | Standardfaehigkeiten
  |    |- player/quests        | Verwaltung geloester Abenteuer
  |    |- player/potion        | Verwaltung gefundener Zaubertraenke
  |    |- player/soul          | Seelenkommandos (hilfe verben ;)
  |    |- player/viewcmd       | Untersuchen etc.
  |    |- more                 | More() fuer lange Texte
  |    `- user_filter          | Hilfsmodul fuer "kwer in muenster" etc.
  |                               | Ab hier: Magiershell
  |- shells/filesys/filesys         | allgemeines Modul zur Dateibehandlung
  |    |- shells/filesys/manual     | der "hilfe"-Befehl der Magier
  |    |- shells/filesys/primitives | low-level-Routinen
  |    |- shells/filesys/asynchron  | zur Vermeidung von Lags
  |    `- shells/filesys/make       | komfortables updaten von Objekten
  `- player/objects                 | Objekte clonen, updaten, zerstoeren
