summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Deflection.c4d/Script.c4
-rw-r--r--TemplePushing.c4s/System.c4g/Stoneshield.c30
2 files changed, 33 insertions, 1 deletions
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Deflection.c4d/Script.c b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Deflection.c4d/Script.c
index e1740ff..fcaac0d 100644
--- a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Deflection.c4d/Script.c
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Deflection.c4d/Script.c
@@ -8,7 +8,9 @@ func Activate(pCaster,pRealcaster)
if(!pClonk) pClonk=pCaster;
// Auswählen wenn möglich
- if (pCaster->~DoSpellSelect(this,300)) return 1;
+ var selector;
+ if ((selector = pClonk->~DoSpellSelect(this,300,pCaster)) && selector->CountTargets() > 1) return 1;
+ if (selector) RemoveObject(selector);
// Clonk kann nicht auswählen: Clonk bekommst selbst ein Schild
if (SelectorTarget(pClonk))
diff --git a/TemplePushing.c4s/System.c4g/Stoneshield.c b/TemplePushing.c4s/System.c4g/Stoneshield.c
new file mode 100644
index 0000000..885b921
--- /dev/null
+++ b/TemplePushing.c4s/System.c4g/Stoneshield.c
@@ -0,0 +1,30 @@
+/*-- Show selector, but only if targets are available --*/
+#strict 2
+#appendto MSSH
+
+func Activate(pCaster,pRealcaster)
+{
+ var pClonk=pRealcaster;
+ if(!pClonk) pClonk=pCaster;
+
+ var pCombo;
+ // Stein verlängert die Wirkungsdauer
+ if (pCombo = FindContents(ROCK, pCaster))
+ {
+ fRock = true;
+ RemoveObject(pCombo);
+ }
+
+ // Auswählen wenn möglich
+ var selector;
+ if ((selector = pClonk->~DoSpellSelect(this,300,pCaster)) && (selector->CountTargets() > 1 || !SelectorTarget(pClonk))) return 1;
+ if (selector) RemoveObject(selector);
+
+ // Clonk kann nicht auswählen: Clonk bekommst selbst ein Schild
+ if (SelectorTarget(pClonk))
+ return(ActivateTarget(pClonk, pClonk));
+
+ // ansonsten geth nich
+ RemoveObject();
+ return(0);
+}