Aufruf von Funktionen in Spells auf Closures umgestellt.

In AddSpell() kann man jetzt auch direkt eine Closure uebergeben, die
Funktionen muessen ausserdem nicht mehr public sein.

Intern wird jetzt direkt eine Closure gespeichert und diese mit apply()
aufgerufen statt wie bisher ein Funktionsname mit call_other().

Change-Id: Ia3142279a5eb601e8a6001260548d83707f0c8fb
diff --git a/doc/lfun/AddSpell b/doc/lfun/AddSpell
index dbc6869..3ec1bf8 100644
--- a/doc/lfun/AddSpell
+++ b/doc/lfun/AddSpell
@@ -3,7 +3,7 @@
 FUNKTION:
     varargs int AddSpell(int rate, int damage, string TextForEnemy,
                          string TextForOthers, string|string* dam_type,
-                         string func, int|mapping spellarg)
+                         string|closure func, int|mapping spellarg)
 
 DEFINIERT IN:
     /std/npc/combat.c
@@ -17,9 +17,10 @@
     TextForOthers - Text, den andere im Raum erhalten sollen
     dam_type      - Schadenstyp(en) fuer Defend(),
                     (Default: ({DT_MAGIC}) )
-    func          - Funktionsname, die nach Anwendung aufgerufen werden soll
-                    (Optional, gerufen an this_object(), bekommt als Argumente
-                     object enemy, int real_damage, string* dam_type)
+    func          - Funktionsname oder Closure, die nach Anwendung
+                    aufgerufen werden soll
+                    (Optional, bekommt als Argumente object enemy, 
+                    int real_damage, string* dam_type)
     spellarg      - Spell-Argument fuer Defend(), Default ist "1"
 
 BESCHREIBUNG:
@@ -58,8 +59,8 @@
 
     In der von AddSpell gerufenen Methode "func" koennen speziellere
     Sachen mit dem aktuellen Feind angestellt werden koennen. Die Methode
-    darf als Sichtbarkeitsmodifikator maximal "", "public" oder "static"
-    (obsolet) haben und muss im selben Objekt definiert sein.
+    muss im selben Objekt definiert sein, sofern der Funktionsname und
+    keine Closure uebergeben wird.
 
     Will man einen physischen Angriff ausloesen, MUSS <spellarg> ein Mapping
     mit ([SP_PHYSICAL_ATTACK: 1]) sein. Bei Uebergeben einer 0 oder Weglassen
@@ -146,4 +147,4 @@
      Abwehr:     Defend, Defend_bsp, SpellDefend
      Methoden:   modifiers
 
-11.12.2015 Arathorn
+Zuletzt geaendert: 20.11.2016, Bugfix