summaryrefslogtreecommitdiffstats
path: root/TemplePushing.c4s/System.c4g/Curses.c
diff options
context:
space:
mode:
Diffstat (limited to 'TemplePushing.c4s/System.c4g/Curses.c')
-rw-r--r--TemplePushing.c4s/System.c4g/Curses.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/TemplePushing.c4s/System.c4g/Curses.c b/TemplePushing.c4s/System.c4g/Curses.c
new file mode 100644
index 0000000..7a1e86f
--- /dev/null
+++ b/TemplePushing.c4s/System.c4g/Curses.c
@@ -0,0 +1,30 @@
+/*-- Prevent Curse Scrolls from vanishing --*/
+
+#strict 2
+
+#appendto CAHE
+
+local pCasterClonk;
+
+public func Activate(pCaster,pRealcaster)
+{
+ var pClonk;
+ if(pRealcaster) pClonk=pRealcaster;
+ else pClonk=pCaster;
+
+ pCasterClonk = pClonk; // Caster speichern, damit es sich unter keinen Umständen selber wählen kann
+ // Auswählen wenn möglich
+ if (pClonk->~DoSpellSelect(this(),300)) return(1);
+
+ var pTarget;
+ // Clonk kann nicht auswählen: nächsten Gegner verfluchen
+ while(pTarget=FindObject(0,-300,-300,150,150,OCF_CrewMember,0,0,NoContainer(),pTarget))
+ if(SelectorTarget(pTarget))
+ return(ActivateTarget(pTarget));
+
+ // ansonsten geht nich
+ var iResult;
+ if (iResult = CheckEffect("*Curse*", 0, 125)) return(iResult!=-1 && RemoveObject());
+
+ return(0);
+}