From 38096017fcfdf89f60f388486cd5f6a7770f55ab Mon Sep 17 00:00:00 2001 From: Jan <> Date: Mon, 3 Aug 2015 00:13:53 +0200 Subject: Rename "Eisnadeln.c4d" to "IceNeedles.c4d" --- .../AdditionalSpells.c4d/Eisnadeln.c4d/DefCore.txt | 8 - .../AdditionalSpells.c4d/Eisnadeln.c4d/DescDE.txt | 1 - .../AdditionalSpells.c4d/Eisnadeln.c4d/DescUS.txt | 1 - .../Eisnadeln.c4d/Eisnadeln.c4d/ActMap.txt | 7 - .../Eisnadeln.c4d/Eisnadeln.c4d/DefCore.txt | 20 --- .../Eisnadeln.c4d/Eisnadeln.c4d/DescDE.txt | 1 - .../Eisnadeln.c4d/Eisnadeln.c4d/DescUS.txt | 1 - .../Eisnadeln.c4d/FSSpark.c4d/Graphics.png | Bin 1468 -> 0 bytes .../Eisnadeln.c4d/FSSpark.c4d/Particle.txt | 14 -- .../Eisnadeln.c4d/Eisnadeln.c4d/Graphics.png | Bin 345 -> 0 bytes .../MaterialParticle.c4d/Graphics.png | Bin 409 -> 0 bytes .../MaterialParticle.c4d/Particle.txt | 14 -- .../MaterialParticle2.c4d/Graphics.png | Bin 339 -> 0 bytes .../MaterialParticle2.c4d/Particle.txt | 16 -- .../Eisnadeln.c4d/Eisnadeln.c4d/Script.c | 176 --------------------- .../Eisnadeln.c4d/Graphics.png | Bin 4517 -> 0 bytes .../AdditionalSpells.c4d/Eisnadeln.c4d/Names.txt | 2 - .../AdditionalSpells.c4d/Eisnadeln.c4d/Script.c | 80 ---------- .../IceNeedles.c4d/DefCore.txt | 8 + .../AdditionalSpells.c4d/IceNeedles.c4d/DescDE.txt | 1 + .../AdditionalSpells.c4d/IceNeedles.c4d/DescUS.txt | 1 + .../IceNeedles.c4d/Graphics.png | Bin 0 -> 4517 bytes .../IceNeedles.c4d/IceNeedles.c4d/ActMap.txt | 7 + .../IceNeedles.c4d/IceNeedles.c4d/DefCore.txt | 20 +++ .../IceNeedles.c4d/IceNeedles.c4d/DescDE.txt | 1 + .../IceNeedles.c4d/IceNeedles.c4d/DescUS.txt | 1 + .../IceNeedles.c4d/FSSpark.c4d/Graphics.png | Bin 0 -> 1468 bytes .../IceNeedles.c4d/FSSpark.c4d/Particle.txt | 14 ++ .../IceNeedles.c4d/IceNeedles.c4d/Graphics.png | Bin 0 -> 345 bytes .../MaterialParticle.c4d/Graphics.png | Bin 0 -> 409 bytes .../MaterialParticle.c4d/Particle.txt | 14 ++ .../MaterialParticle2.c4d/Graphics.png | Bin 0 -> 339 bytes .../MaterialParticle2.c4d/Particle.txt | 16 ++ .../IceNeedles.c4d/IceNeedles.c4d/Script.c | 176 +++++++++++++++++++++ .../AdditionalSpells.c4d/IceNeedles.c4d/Names.txt | 2 + .../AdditionalSpells.c4d/IceNeedles.c4d/Script.c | 80 ++++++++++ 36 files changed, 341 insertions(+), 341 deletions(-) delete mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DefCore.txt delete mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DescDE.txt delete mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DescUS.txt delete mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/ActMap.txt delete mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DefCore.txt delete mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DescDE.txt delete mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DescUS.txt delete mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/FSSpark.c4d/Graphics.png delete mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/FSSpark.c4d/Particle.txt delete mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/Graphics.png delete mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle.c4d/Graphics.png delete mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle.c4d/Particle.txt delete mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle2.c4d/Graphics.png delete mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle2.c4d/Particle.txt delete mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/Script.c delete mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Graphics.png delete mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Names.txt delete mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Script.c create mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/DefCore.txt create mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/DescDE.txt create mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/DescUS.txt create mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/Graphics.png create mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/ActMap.txt create mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/DefCore.txt create mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/DescDE.txt create mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/DescUS.txt create mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/FSSpark.c4d/Graphics.png create mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/FSSpark.c4d/Particle.txt create mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/Graphics.png create mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/MaterialParticle.c4d/Graphics.png create mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/MaterialParticle.c4d/Particle.txt create mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/MaterialParticle2.c4d/Graphics.png create mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/MaterialParticle2.c4d/Particle.txt create mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/Script.c create mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/Names.txt create mode 100644 TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/Script.c (limited to 'TemplePushing.c4s') diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DefCore.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DefCore.txt deleted file mode 100644 index 214c847..0000000 --- a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DefCore.txt +++ /dev/null @@ -1,8 +0,0 @@ -[DefCore] -id=ICNL -Name=Eisnadeln -Version=4,9,5,4 -Category=131073 -Picture=0,0,64,64 -Value=12 -Components=ICRS=3;IICE=2; \ No newline at end of file diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DescDE.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DescDE.txt deleted file mode 100644 index e7fbadb..0000000 --- a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DescDE.txt +++ /dev/null @@ -1 +0,0 @@ -Schießt Eisnadeln vom Zauberer weg. \ No newline at end of file diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DescUS.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DescUS.txt deleted file mode 100644 index f56d320..0000000 --- a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DescUS.txt +++ /dev/null @@ -1 +0,0 @@ -Shoots ice needles in the selected direction. \ No newline at end of file diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/ActMap.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/ActMap.txt deleted file mode 100644 index 7dec40a..0000000 --- a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/ActMap.txt +++ /dev/null @@ -1,7 +0,0 @@ -[Action] -Name=Fly -Procedure=FLOAT -Length=1 -Delay=1 -NextAction=Fly -FacetBase=1 diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DefCore.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DefCore.txt deleted file mode 100644 index 13db5ff..0000000 --- a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DefCore.txt +++ /dev/null @@ -1,20 +0,0 @@ -[DefCore] -id=ICNA -Name=Eisnadel -Version=4,9,5 -Category=4 -MaxUserSelect=10 -Width=12 -Height=3 -Offset=-6,-1 -Value=10 -Mass=10 -Timer=2 -TimerCall=Check -Vertices=1 -VertexX=1 -VertexFriction=20 -Rotate=1 - -[Physical] -Float=500 \ No newline at end of file diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DescDE.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DescDE.txt deleted file mode 100644 index a5ea66e..0000000 --- a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DescDE.txt +++ /dev/null @@ -1 +0,0 @@ -Frostig. \ No newline at end of file diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DescUS.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DescUS.txt deleted file mode 100644 index 8cbca28..0000000 --- a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DescUS.txt +++ /dev/null @@ -1 +0,0 @@ -Very cold. \ No newline at end of file diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/FSSpark.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/FSSpark.c4d/Graphics.png deleted file mode 100644 index d598ba4..0000000 Binary files a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/FSSpark.c4d/Graphics.png and /dev/null differ diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/FSSpark.c4d/Particle.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/FSSpark.c4d/Particle.txt deleted file mode 100644 index b6f0130..0000000 --- a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/FSSpark.c4d/Particle.txt +++ /dev/null @@ -1,14 +0,0 @@ -[Particle] -Name=FSSpark -MaxCount=2000 -InitFn=StdInit -ExecFn=StdExec -DrawFn=Std -Face=0,0,32,32,-16,-16 -Delay=0 -Repeats=6 -GravityAcc=0 -AlphaFade=4 -Additive=1 -Attach=1 -RByV=1 \ No newline at end of file diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/Graphics.png deleted file mode 100644 index b00b2f5..0000000 Binary files a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/Graphics.png and /dev/null differ diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle.c4d/Graphics.png deleted file mode 100644 index 7fd2df2..0000000 Binary files a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle.c4d/Graphics.png and /dev/null differ diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle.c4d/Particle.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle.c4d/Particle.txt deleted file mode 100644 index 61c3b8b..0000000 --- a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle.c4d/Particle.txt +++ /dev/null @@ -1,14 +0,0 @@ -[Particle] -Name=MaterialParticle -MaxCount=350 -InitFn=StdInit -ExecFn=StdExec -DrawFn=Std -CollisionFn=Die -Face=0,0,28,43,-15,-5 -Repeats=10 -GravityAcc=70 -RByV=1 -Delay=175 -VertexCount=1 -AlphaFade=0 \ No newline at end of file diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle2.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle2.c4d/Graphics.png deleted file mode 100644 index ba84750..0000000 Binary files a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle2.c4d/Graphics.png and /dev/null differ diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle2.c4d/Particle.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle2.c4d/Particle.txt deleted file mode 100644 index 63d5355..0000000 --- a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle2.c4d/Particle.txt +++ /dev/null @@ -1,16 +0,0 @@ -[Particle] -Name=MaterialParticle2 -MaxCount=3500 -InitFn=StdInit -ExecFn=StdExec -DrawFn=Std -CollisionFn=Die -Face=0,0,28,43,-15,-5 -Repeats=1 -GravityAcc=0 -RByV=1 -Delay=0 -VertexCount=1 -AlphaFade=4 -Additive=1 -Attach=1 \ No newline at end of file diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/Script.c b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/Script.c deleted file mode 100644 index f433017..0000000 --- a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/Script.c +++ /dev/null @@ -1,176 +0,0 @@ -/*-- Ice Needle --*/ - -#strict -static const ICNA_Speed=50; - -local timer; -local iOldX, iOldY; -local Gift; -local iAngle; -local Caster; -local Randi; - -func Initialize() { -Gift=0; - timer=0; - return(1); -} - -public func Activate(pCaster,Angle) -{ - SetAction("Fly"); - var xDir,yDir; -// SetR(Angle-100+RandomX(0,20)); - iAngle = Angle-10+RandomX(0,20); - SetR(iAngle-90); - Caster = pCaster; -// xDir=Cos(iAngle-90,ICNA_Speed); -// yDir=Sin(iAngle-90,ICNA_Speed); -// SetXDir(xDir+RandomX(-10,10)); -// SetYDir(yDir+RandomX(-10,10)); -// iOldX = GetX(); iOldY = GetY(); -} - -protected func Hit() -{ - if(CheckHit()) return(); - CastParticles("MaterialParticle",20,50,0,0,20,60,RGB(50,120,255),RGB(00,120,255)); - if(!Random(3)) RemoveObject(); - if(GetR() > 180) iAngle = iAngle-iAngle*2; - if(GetR() < 180) iAngle = iAngle+iAngle*2; - var iMinAngleDiff = 360, iTargetAngle = iAngle; - var pObj; - while (pObj = FindObject(0, Sin(iAngle, 200)-200/2, -Cos(iAngle, 200)-200/2, 200, 200, OCF_CrewMember, 0,0, NoContainer(), pObj)) - { - if (!GetAlive(pObj)) continue; - if(pObj == Caster) continue; - if(!PathFree(GetX(),GetY(),GetX(pObj),GetY(pObj))) continue; - var iThisTargetAngle = Angle(GetX(), GetY(), GetX(pObj), GetY(pObj)); - if (iThisTargetAngle > 180) iThisTargetAngle -= 360; - if (Abs(iThisTargetAngle - iAngle) < iMinAngleDiff) - { - iMinAngleDiff = Abs(iThisTargetAngle - iAngle); - iTargetAngle = iThisTargetAngle; - } - } - iAngle = BoundBy(iTargetAngle, iAngle-Randi, iAngle+Randi); -} - -protected func Check() -{ -//CheckCrash(this()); -// SetXDir(Cos(GetR(), 245000) * 2, 0, 100000); -// SetYDir(Sin(GetR(), 245000) * 2, 0, 100000); - Randi = RandomX(0,20); - SetR(iAngle); - SetXDir(Sin(iAngle, 50)); - SetYDir(-Cos(iAngle, 50)); - - // SetXDir(Sin(iAngle, 80)); - // SetYDir(-Cos(iAngle, 80)); - - var iMinAngleDiff = 360, iTargetAngle = iAngle; - var pObj; - while (pObj = FindObject(0, Sin(iAngle, 200)-200/2, -Cos(iAngle, 200)-200/2, 200, 200, OCF_CrewMember, 0,0, NoContainer(), pObj)) - { - if (!GetAlive(pObj)) continue; - if(pObj == Caster) continue; - if(!PathFree(GetX(),GetY(),GetX(pObj),GetY(pObj))) continue; - var iThisTargetAngle = Angle(GetX(), GetY(), GetX(pObj), GetY(pObj)); - if (iThisTargetAngle > 180) iThisTargetAngle -= 360; - if (Abs(iThisTargetAngle - iAngle) < iMinAngleDiff) - { - iMinAngleDiff = Abs(iThisTargetAngle - iAngle); - iTargetAngle = iThisTargetAngle; - } - } - iAngle = BoundBy(iTargetAngle, iAngle-Randi, iAngle+Randi); - - if(++timer > 100)RemoveObject(); - //if(!GetR() == iAngle-90){ - //if(GetR() < iAngle-90) SetRDir(1); - //if(GetR() > iAngle-90) SetRDir(-1); - //} - //if(GetR() == iAngle-80+RandomX(0,20)) SetRDir(0); - if(ObjectDistance(this(),pObj) < 40) SetR(iAngle-90); - -if(!Gift==1) - { - // CreateParticle("PSpark",0,0,0,0,20,RGBa(0,RandomX(100,120),RandomX(160,255),90)); - CreateParticle("PSpark",0,0,0,0,180,RGBa(0,RandomX(100,120),RandomX(160,255),120)); - CreateParticle("FSSpark",0,0,0,0,150,RGB(0,RandomX(100,120),RandomX(160,255))); - //CreateParticle("PSpark",-GetXDir()/5,-GetYDir()/5,0,0,40,RGB(0,RandomX(100,120),RandomX(160,255))); - //CreateParticle("PSpark",-GetXDir()/2,-GetYDir()/2,0,0,40,RGB(0,RandomX(100,120),RandomX(160,255))); - CreateParticle("MaterialParticle2",0,0,RandomX(2,-2)-GetXDir()/2,RandomX(2,-2)-GetYDir()/2,250,RGB(0,RandomX(100,120),RandomX(160,255))); - } -else -{ - CreateParticle("FSSpark",0,0,0,0,150,RGB(100,255,0)); - CreateParticle("PSpark",0,0,0,0,180,RGBa(100,255,0,120)); - CreateParticle("MaterialParticle2",0,0,RandomX(2,-2)-GetXDir()/2,RandomX(2,-2)-GetYDir()/2,250,RGB(100,255,0)); - } - // Auf Treffer prüfen - CheckHit(); - iOldX = GetX(); iOldY = GetY(); -/* var pClonk=0; - while(pClonk=FindObject(0,0,-1,0,0,OCF_Alive(),0,0,NoContainer(),pClonk)) - { - if(!ObjectCount(NTMG))if(Hostile(GetOwner(),GetOwner(pClonk)))continue; - Punch(pClonk,4); - RemoveObject(); - }*/ -} - -private func CheckHit() -{ - // Nur wenn schon passende Werte da sind - if(!iOldX && !iOldY) return(); - // Distance zur letzten Position berechnen - var iXDist = GetX()-iOldX; - var iYDist = GetY()-iOldY; - // Treffer-Überprüfung - var iSteps = Abs(iXDist/4); - if(Abs(GetXDir())~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) diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/DefCore.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/DefCore.txt new file mode 100644 index 0000000..214c847 --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/DefCore.txt @@ -0,0 +1,8 @@ +[DefCore] +id=ICNL +Name=Eisnadeln +Version=4,9,5,4 +Category=131073 +Picture=0,0,64,64 +Value=12 +Components=ICRS=3;IICE=2; \ No newline at end of file diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/DescDE.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/DescDE.txt new file mode 100644 index 0000000..e7fbadb --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/DescDE.txt @@ -0,0 +1 @@ +Schießt Eisnadeln vom Zauberer weg. \ No newline at end of file diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/DescUS.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/DescUS.txt new file mode 100644 index 0000000..f56d320 --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/DescUS.txt @@ -0,0 +1 @@ +Shoots ice needles in the selected direction. \ No newline at end of file diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/Graphics.png new file mode 100644 index 0000000..d58fd63 Binary files /dev/null and b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/Graphics.png differ diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/ActMap.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/ActMap.txt new file mode 100644 index 0000000..7dec40a --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/ActMap.txt @@ -0,0 +1,7 @@ +[Action] +Name=Fly +Procedure=FLOAT +Length=1 +Delay=1 +NextAction=Fly +FacetBase=1 diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/DefCore.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/DefCore.txt new file mode 100644 index 0000000..13db5ff --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/DefCore.txt @@ -0,0 +1,20 @@ +[DefCore] +id=ICNA +Name=Eisnadel +Version=4,9,5 +Category=4 +MaxUserSelect=10 +Width=12 +Height=3 +Offset=-6,-1 +Value=10 +Mass=10 +Timer=2 +TimerCall=Check +Vertices=1 +VertexX=1 +VertexFriction=20 +Rotate=1 + +[Physical] +Float=500 \ No newline at end of file diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/DescDE.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/DescDE.txt new file mode 100644 index 0000000..a5ea66e --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/DescDE.txt @@ -0,0 +1 @@ +Frostig. \ No newline at end of file diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/DescUS.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/DescUS.txt new file mode 100644 index 0000000..8cbca28 --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/DescUS.txt @@ -0,0 +1 @@ +Very cold. \ No newline at end of file diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/FSSpark.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/FSSpark.c4d/Graphics.png new file mode 100644 index 0000000..d598ba4 Binary files /dev/null and b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/FSSpark.c4d/Graphics.png differ diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/FSSpark.c4d/Particle.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/FSSpark.c4d/Particle.txt new file mode 100644 index 0000000..b6f0130 --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/FSSpark.c4d/Particle.txt @@ -0,0 +1,14 @@ +[Particle] +Name=FSSpark +MaxCount=2000 +InitFn=StdInit +ExecFn=StdExec +DrawFn=Std +Face=0,0,32,32,-16,-16 +Delay=0 +Repeats=6 +GravityAcc=0 +AlphaFade=4 +Additive=1 +Attach=1 +RByV=1 \ No newline at end of file diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/Graphics.png new file mode 100644 index 0000000..b00b2f5 Binary files /dev/null and b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/Graphics.png differ diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/MaterialParticle.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/MaterialParticle.c4d/Graphics.png new file mode 100644 index 0000000..7fd2df2 Binary files /dev/null and b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/MaterialParticle.c4d/Graphics.png differ diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/MaterialParticle.c4d/Particle.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/MaterialParticle.c4d/Particle.txt new file mode 100644 index 0000000..61c3b8b --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/MaterialParticle.c4d/Particle.txt @@ -0,0 +1,14 @@ +[Particle] +Name=MaterialParticle +MaxCount=350 +InitFn=StdInit +ExecFn=StdExec +DrawFn=Std +CollisionFn=Die +Face=0,0,28,43,-15,-5 +Repeats=10 +GravityAcc=70 +RByV=1 +Delay=175 +VertexCount=1 +AlphaFade=0 \ No newline at end of file diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/MaterialParticle2.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/MaterialParticle2.c4d/Graphics.png new file mode 100644 index 0000000..ba84750 Binary files /dev/null and b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/MaterialParticle2.c4d/Graphics.png differ diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/MaterialParticle2.c4d/Particle.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/MaterialParticle2.c4d/Particle.txt new file mode 100644 index 0000000..63d5355 --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/MaterialParticle2.c4d/Particle.txt @@ -0,0 +1,16 @@ +[Particle] +Name=MaterialParticle2 +MaxCount=3500 +InitFn=StdInit +ExecFn=StdExec +DrawFn=Std +CollisionFn=Die +Face=0,0,28,43,-15,-5 +Repeats=1 +GravityAcc=0 +RByV=1 +Delay=0 +VertexCount=1 +AlphaFade=4 +Additive=1 +Attach=1 \ No newline at end of file diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/Script.c b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/Script.c new file mode 100644 index 0000000..f433017 --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/IceNeedles.c4d/Script.c @@ -0,0 +1,176 @@ +/*-- Ice Needle --*/ + +#strict +static const ICNA_Speed=50; + +local timer; +local iOldX, iOldY; +local Gift; +local iAngle; +local Caster; +local Randi; + +func Initialize() { +Gift=0; + timer=0; + return(1); +} + +public func Activate(pCaster,Angle) +{ + SetAction("Fly"); + var xDir,yDir; +// SetR(Angle-100+RandomX(0,20)); + iAngle = Angle-10+RandomX(0,20); + SetR(iAngle-90); + Caster = pCaster; +// xDir=Cos(iAngle-90,ICNA_Speed); +// yDir=Sin(iAngle-90,ICNA_Speed); +// SetXDir(xDir+RandomX(-10,10)); +// SetYDir(yDir+RandomX(-10,10)); +// iOldX = GetX(); iOldY = GetY(); +} + +protected func Hit() +{ + if(CheckHit()) return(); + CastParticles("MaterialParticle",20,50,0,0,20,60,RGB(50,120,255),RGB(00,120,255)); + if(!Random(3)) RemoveObject(); + if(GetR() > 180) iAngle = iAngle-iAngle*2; + if(GetR() < 180) iAngle = iAngle+iAngle*2; + var iMinAngleDiff = 360, iTargetAngle = iAngle; + var pObj; + while (pObj = FindObject(0, Sin(iAngle, 200)-200/2, -Cos(iAngle, 200)-200/2, 200, 200, OCF_CrewMember, 0,0, NoContainer(), pObj)) + { + if (!GetAlive(pObj)) continue; + if(pObj == Caster) continue; + if(!PathFree(GetX(),GetY(),GetX(pObj),GetY(pObj))) continue; + var iThisTargetAngle = Angle(GetX(), GetY(), GetX(pObj), GetY(pObj)); + if (iThisTargetAngle > 180) iThisTargetAngle -= 360; + if (Abs(iThisTargetAngle - iAngle) < iMinAngleDiff) + { + iMinAngleDiff = Abs(iThisTargetAngle - iAngle); + iTargetAngle = iThisTargetAngle; + } + } + iAngle = BoundBy(iTargetAngle, iAngle-Randi, iAngle+Randi); +} + +protected func Check() +{ +//CheckCrash(this()); +// SetXDir(Cos(GetR(), 245000) * 2, 0, 100000); +// SetYDir(Sin(GetR(), 245000) * 2, 0, 100000); + Randi = RandomX(0,20); + SetR(iAngle); + SetXDir(Sin(iAngle, 50)); + SetYDir(-Cos(iAngle, 50)); + + // SetXDir(Sin(iAngle, 80)); + // SetYDir(-Cos(iAngle, 80)); + + var iMinAngleDiff = 360, iTargetAngle = iAngle; + var pObj; + while (pObj = FindObject(0, Sin(iAngle, 200)-200/2, -Cos(iAngle, 200)-200/2, 200, 200, OCF_CrewMember, 0,0, NoContainer(), pObj)) + { + if (!GetAlive(pObj)) continue; + if(pObj == Caster) continue; + if(!PathFree(GetX(),GetY(),GetX(pObj),GetY(pObj))) continue; + var iThisTargetAngle = Angle(GetX(), GetY(), GetX(pObj), GetY(pObj)); + if (iThisTargetAngle > 180) iThisTargetAngle -= 360; + if (Abs(iThisTargetAngle - iAngle) < iMinAngleDiff) + { + iMinAngleDiff = Abs(iThisTargetAngle - iAngle); + iTargetAngle = iThisTargetAngle; + } + } + iAngle = BoundBy(iTargetAngle, iAngle-Randi, iAngle+Randi); + + if(++timer > 100)RemoveObject(); + //if(!GetR() == iAngle-90){ + //if(GetR() < iAngle-90) SetRDir(1); + //if(GetR() > iAngle-90) SetRDir(-1); + //} + //if(GetR() == iAngle-80+RandomX(0,20)) SetRDir(0); + if(ObjectDistance(this(),pObj) < 40) SetR(iAngle-90); + +if(!Gift==1) + { + // CreateParticle("PSpark",0,0,0,0,20,RGBa(0,RandomX(100,120),RandomX(160,255),90)); + CreateParticle("PSpark",0,0,0,0,180,RGBa(0,RandomX(100,120),RandomX(160,255),120)); + CreateParticle("FSSpark",0,0,0,0,150,RGB(0,RandomX(100,120),RandomX(160,255))); + //CreateParticle("PSpark",-GetXDir()/5,-GetYDir()/5,0,0,40,RGB(0,RandomX(100,120),RandomX(160,255))); + //CreateParticle("PSpark",-GetXDir()/2,-GetYDir()/2,0,0,40,RGB(0,RandomX(100,120),RandomX(160,255))); + CreateParticle("MaterialParticle2",0,0,RandomX(2,-2)-GetXDir()/2,RandomX(2,-2)-GetYDir()/2,250,RGB(0,RandomX(100,120),RandomX(160,255))); + } +else +{ + CreateParticle("FSSpark",0,0,0,0,150,RGB(100,255,0)); + CreateParticle("PSpark",0,0,0,0,180,RGBa(100,255,0,120)); + CreateParticle("MaterialParticle2",0,0,RandomX(2,-2)-GetXDir()/2,RandomX(2,-2)-GetYDir()/2,250,RGB(100,255,0)); + } + // Auf Treffer prüfen + CheckHit(); + iOldX = GetX(); iOldY = GetY(); +/* var pClonk=0; + while(pClonk=FindObject(0,0,-1,0,0,OCF_Alive(),0,0,NoContainer(),pClonk)) + { + if(!ObjectCount(NTMG))if(Hostile(GetOwner(),GetOwner(pClonk)))continue; + Punch(pClonk,4); + RemoveObject(); + }*/ +} + +private func CheckHit() +{ + // Nur wenn schon passende Werte da sind + if(!iOldX && !iOldY) return(); + // Distance zur letzten Position berechnen + var iXDist = GetX()-iOldX; + var iYDist = GetY()-iOldY; + // Treffer-Überprüfung + var iSteps = Abs(iXDist/4); + if(Abs(GetXDir())~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) -- cgit v1.2.3-54-g00ecf