summaryrefslogtreecommitdiffstats
path: root/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/Script.c
diff options
context:
space:
mode:
authorJan <>2015-08-03 00:13:53 +0200
committerJan <_>2015-08-03 02:18:02 +0200
commit38096017fcfdf89f60f388486cd5f6a7770f55ab (patch)
tree37053d152f407ec9de3b158222401adbcf7f9e40 /TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/Script.c
parent46eb99cc27277b68615b8d71bdf42ee7358bdee3 (diff)
downloadtempelschubsen-38096017fcfdf89f60f388486cd5f6a7770f55ab.tar.gz
tempelschubsen-38096017fcfdf89f60f388486cd5f6a7770f55ab.zip
Rename "Eisnadeln.c4d" to "IceNeedles.c4d"
Diffstat (limited to 'TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/Script.c')
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/Script.c80
1 files changed, 80 insertions, 0 deletions
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/Script.c b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/Script.c
new file mode 100644
index 0000000..eba7696
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/Script.c
@@ -0,0 +1,80 @@
+/* Ice Needles */
+
+#strict
+
+
+func Activate(pCaster,pRealcaster)
+{
+Sound("Magic",0,pCaster);
+ var pClonk;
+ if(pRealcaster) pClonk=pRealcaster;
+ else pClonk=pCaster;
+
+ // Zielen wenn möglich
+ if (pClonk->~DoSpellAim(this(), pCaster)) return(1);
+
+ var angle=-90;
+ if(GetDir(pClonk) == DIR_Right()) angle=90;
+ ActivateAngle(pClonk,angle);
+ RemoveObject();
+ return(1);
+}
+
+// Aktivierung nach Zielen (iAngle: -90=links; 0=oben; +90=rechts)
+public func ActivateAngle(object pCaller, int iAngle)
+{
+ for(var cnt=0;cnt<3;cnt++)
+ {
+ var f=CreateObject(ICNA,AbsX(GetX(pCaller))+Cos(iAngle-90,13),AbsY(GetY(pCaller))+Sin(iAngle-90,13),GetOwner(pCaller));
+ f->Activate(pCaller,iAngle);
+ }
+
+ AddEffect("RecallMFCSAiming",pCaller,20,1,0,GetID(),iAngle);
+
+ // Objekt löschen
+ RemoveObject();
+ return(1);
+}
+
+public func HoldAimer(pCaller)
+{
+ return(true);
+}
+
+protected func FxRecallICNAAimingStart(pTarget,iEffectNumber,bTemp,par1){
+EffectVar(0,pTarget,iEffectNumber)=par1;
+EffectVar(1,pTarget,iEffectNumber)=0;
+EffectVar(2,pTarget,iEffectNumber)=0;
+return(1);}
+
+protected func FxRecallICNAAimingTimer(pTarget,iEffectNumber)
+{
+ if(GetAction(pTarget) eq "Magic")return(0);
+
+ if(!EffectVar(1,pTarget,iEffectNumber))
+ {
+ pTarget->~DoMagic(ICNA);
+ EffectVar(1,pTarget,iEffectNumber)=1;
+ }
+
+ if(!EffectVar(2,pTarget,iEffectNumber) && GetAction(pTarget) eq "AimMagic")
+ {
+ var pAimer=FindObject(AIMR,0,0,0,0,0,0,pTarget,NoContainer());
+ if(pAimer)
+ {
+ LocalN("iAngle",pAimer)=EffectVar(0,pTarget,iEffectNumber);
+ LocalN("pArrow",pAimer)->~UpdateAngle(EffectVar(0,pTarget,iEffectNumber));
+ pAimer->~UpdateAngle(EffectVar(0,pTarget,iEffectNumber));
+ pTarget->~AimingAngle(EffectVar(0,pTarget,iEffectNumber));
+ EffectVar(2,pTarget,iEffectNumber)=1;
+ }
+ }
+ if(!WildcardMatch(GetAction(pTarget),"*Magic*") && !WildcardMatch(GetAction(pTarget),"*Aim*"))return(-1);
+
+ if(EffectVar(2,pTarget,iEffectNumber) && EffectVar(1,pTarget,iEffectNumber))return(-1);
+}
+
+/* Zaubercombo */
+
+public func GetSpellClass(object pMage) { return(WATR); }
+public func GetSpellCombo(pMage) { return ("444"); } // (1: Backward; 2: Down; 3: Forward; 4: Throw; 5: Jump; 6: Dig)