summaryrefslogtreecommitdiffstats
path: root/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d
diff options
context:
space:
mode:
Diffstat (limited to 'TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d')
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/ActMap.txt41
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/DefCore.txt17
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/Graphics.pngbin0 -> 41178 bytes
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/Script.c79
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/DefCore.txt10
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Graphics.pngbin0 -> 7225 bytes
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Script.c46
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/StringTblDE.txt2
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/StringTblUS.txt2
15 files changed, 205 insertions, 0 deletions
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/ActMap.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/ActMap.txt
new file mode 100644
index 0000000..c7d7b36
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/ActMap.txt
@@ -0,0 +1,41 @@
+[Action]
+Name=Fly
+Procedure=FLOAT
+Length=1
+Delay=0
+Directions=2
+FlipDir=1
+NextAction=Fly
+Facet=0,0,45,45
+
+[Action]
+Name=Fly2
+Procedure=FLOAT
+Length=1
+Delay=0
+Directions=2
+FlipDir=1
+NextAction=Fly2
+Facet=855,0,45,45
+
+
+[Action]
+Name=Open
+Procedure=FLOAT
+Length=20
+Delay=1
+Directions=2
+FlipDir=1
+NextAction=Fly2
+Facet=0,0,45,45
+
+[Action]
+Name=Close
+Procedure=FLOAT
+Length=20
+Delay=1
+Directions=2
+FlipDir=1
+Reverse=1
+NextAction=Fly
+Facet=0,0,45,45 \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/DefCore.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/DefCore.txt
new file mode 100644
index 0000000..39f04a6
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/DefCore.txt
@@ -0,0 +1,17 @@
+[DefCore]
+id=AFTF
+Name=Claw
+Version=4,9,5
+Category=4
+MaxUserSelect=10
+Width=45
+Height=45
+Offset=-27,-27
+Value=10
+Mass=50
+Timer=2
+TimerCall=Check
+Rotate=1
+
+[Physical]
+Float=500 \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/DescDE.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/DescDE.txt
new file mode 100644
index 0000000..cfb916a
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/DescDE.txt
@@ -0,0 +1 @@
+Die Klaue an sich. \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/DescUS.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/DescUS.txt
new file mode 100644
index 0000000..46f7abe
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/DescUS.txt
@@ -0,0 +1 @@
+The claw itself. \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/Graphics.png
new file mode 100644
index 0000000..5f2fe9f
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/Names.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/Names.txt
new file mode 100644
index 0000000..aad1c68
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Faust
+US:Fist \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/Script.c b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/Script.c
new file mode 100644
index 0000000..f8a20b7
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/Script.c
@@ -0,0 +1,79 @@
+/*-- Klaue --*/
+
+#strict 2
+
+static const AFTF_Speed=45;
+
+local pClonk;
+local pTimer, iSpeed, iAngle;
+local iDamage;
+
+protected func Initialize()
+{
+ // Geschwindigkeit setzen
+ iSpeed=AFTF_Speed;
+ iDamage = 30;
+ return 1;
+}
+
+public func Activate(pCaster,iNewAngle)
+{
+ // Clonk und Winkel speichern
+ pClonk=pCaster;
+ iAngle=iNewAngle;
+
+ // Geschwindigkeit passend setzen
+ var iAdd=0;
+ if(iAngle >= 0) iAdd=180;
+ SetAction("Open");
+ SetR(iAngle+90+iAdd);
+ SetXDir(Cos(iAngle-90,AFTF_Speed));
+ SetYDir(Sin(iAngle-90,AFTF_Speed));
+
+ // Richtung anpassen
+ if(iAngle < 0) { SetDir(DIR_Right); }
+ else { SetDir(DIR_Left); }
+}
+
+protected func Check()
+{
+ // Die Zeit vorbei oder stehen geblieben
+ if(++pTimer > 45 || iSpeed<=0)
+ {
+ // Ein letzer Effekt
+ CastParticles("PSpark",10,10,0,0,60,160,RGB(150,150,240),RGB(210,210,255));
+ RemoveObject();
+ }
+
+ // In Materie wird die Klaue langsamer
+ if(GBackSolid())
+ {
+ iSpeed-=6;
+ SetXDir(Cos(iAngle-90,iSpeed));
+ SetYDir(Sin(iAngle-90,iSpeed));
+ }
+
+ if(!iDamage) return;
+
+ // Clonks suchen
+ for(var pClnk in FindObjects(Find_OCF(OCF_Alive),Find_Distance(23,0,0),Find_NoContainer()))
+ {
+ // Nur Feine, außer die Regel ist aktiviert
+// if(!ObjectCount(NTMG) && !Hostile(GetOwner(),GetOwner(pClnk))) continue;
+
+ // Nicht in den ersten Frames den Zauberer selber treffen
+ if(pClnk == pClonk && pTimer < 5) continue;
+
+ // Clonk wegschleudern
+ pClnk->SetAction("Tumble");
+ SetPosition(GetX(pClnk),GetY(pClnk)-2,pClnk);
+ SetXDir(GetXDir(pClnk)+RandomX(-10,10),pClnk);
+ SetYDir(-20,pClnk);
+
+ var iDmg = iSpeed/5;
+ if(iDmg>iDamage) iDmg = iDamage;
+ iDamage-=iDmg;
+ // Und wehtun
+ DoEnergy(-iDmg,pClnk);
+ }
+}
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/DefCore.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/DefCore.txt
new file mode 100644
index 0000000..4cb701b
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/DefCore.txt
@@ -0,0 +1,10 @@
+[DefCore]
+id=AFST
+Name=MagicAirClaw
+Version=4,9,5,4
+Category=1
+Width=1
+Height=1
+Picture=0,0,64,64
+Value=30
+Components=IASH=3; \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/DescDE.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/DescDE.txt
new file mode 100644
index 0000000..4fcfb73
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/DescDE.txt
@@ -0,0 +1 @@
+Erzeugt eine Klaue aus Luft, die Gegner etwas wegschleudert und verletzt. \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/DescUS.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/DescUS.txt
new file mode 100644
index 0000000..ba0ca61
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/DescUS.txt
@@ -0,0 +1 @@
+A claw of air which hurts enemies. \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Graphics.png
new file mode 100644
index 0000000..54db3c5
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Names.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Names.txt
new file mode 100644
index 0000000..d21bef2
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Luftklaue
+US:Air claw \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Script.c b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Script.c
new file mode 100644
index 0000000..d4008c2
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Script.c
@@ -0,0 +1,46 @@
+/* Luftklaue */
+
+#strict 2
+
+func Activate(pCaster,pRealcaster) {
+ var pClonk;
+ if(pRealcaster) pClonk=pRealcaster;
+ else pClonk=pCaster;
+
+ // Nicht im Gebäude zaubern
+ if(Contained(pClonk))
+ {
+ Sound("Error");
+ PlayerMessage(GetOwner(pClonk), "$must_be_in_free$", pClonk);
+ RemoveObject();
+ return 0;
+ }
+
+ // Zielen wenn möglich
+ if (pClonk->~DoSpellAim(this(), pCaster)) return 1;
+
+ // Sonst einfach ungezielt loslassen
+ var angle=-90;
+ if(GetDir(pClonk) == DIR_Right) angle=90;
+ ActivateAngle(pClonk,angle);
+
+ return;
+}
+
+// Aktivierung nach Zielen (iAngle: -90=links; 0=oben; +90=rechts)
+public func ActivateAngle(object pCaller, int iAngle)
+{
+ // Klaue erzeugen und losschicken
+ CreateObject(AFTF,AbsX(GetX(pCaller))+Cos(iAngle-90,10),AbsY(GetY(pCaller))+Sin(iAngle-90,10)+19,GetOwner(pCaller))->Activate(pCaller,iAngle);
+
+ // Objekt löschen
+ RemoveObject();
+ return 1;
+}
+
+public func IsBattlemageSpell() { return true; }
+
+/* Zaubercombo */
+
+public func GetSpellStaff(object pMage) { return SMAR; }
+public func GetSpellStaffCombo(pMage) { return ("44"); } // (1: Backward; 2: Down; 3: Forward; 4: Throw; 5: Jump; 6: Dig)
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/StringTblDE.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/StringTblDE.txt
new file mode 100644
index 0000000..04eec3b
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/StringTblDE.txt
@@ -0,0 +1,2 @@
+must_be_in_free=Für diesen Zauber muss|sich der Clonk im|Freien befinden!
+StillDelay=Das Zauberdelay ist noch nicht abgelaufen! \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/StringTblUS.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/StringTblUS.txt
new file mode 100644
index 0000000..3c01382
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/StringTblUS.txt
@@ -0,0 +1,2 @@
+must_be_in_free=Magician must be outside|to cast this spell!
+StillDelay=The spelldelay isn't over.