Automatisch erzeugte Manpages.
Damit nicht jeder sphinx auf dem Rechner haben muss,
behalten wir bis auf weiteres die aus den .rst
erzeugten Manpoages auch im Repo.
Change-Id: Id556c0d11cf5f79659d8350952ce1c014d81ea44
diff --git a/doc/lfun/DefendFunc b/doc/lfun/DefendFunc
index 7043e04..1683b3f 100644
--- a/doc/lfun/DefendFunc
+++ b/doc/lfun/DefendFunc
@@ -1,78 +1,107 @@
+
+DefendFunc()
+************
+
+
DefendFunc(L)
+=============
-FUNKTION:
- int DefendFunc(string|string *dtyp, int|mappingspell, object enemy);
-DEFINIERT IN:
- eigenen Objekten; fuer /std/armour/combat.c
+FUNKTION
+========
-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
+ int DefendFunc(string|string *dtyp, int|mappingspell, object enemy);
-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.
+DEFINIERT IN
+============
-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.
+ eigenen Objekten; fuer /std/armour/combat.c
- 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:
+ARGUMENTE
+=========
- void create()
- {
- ::create();
+ 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
- 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;
+BESCHREIBUNG
+============
- // 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
+ 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.
- // 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;
- }
+RUeCKGABEWERT
+=============
-SIEHE AUCH:
- P_DEFEND_FUNC, QueryDefend(), /std/armour/combat.c
+ 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