diff options
Diffstat (limited to 'TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d')
7 files changed, 141 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 Binary files differnew file mode 100644 index 0000000..5f2fe9f --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Airclaw.c4d/Claw.c4d/Graphics.png 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); + } +} |
