summaryrefslogtreecommitdiffstats
path: root/TemplePushing.c4s/Misc.c4d
diff options
context:
space:
mode:
Diffstat (limited to 'TemplePushing.c4s/Misc.c4d')
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Deflection.c4d/Script.c9
1 files changed, 5 insertions, 4 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 6a53745..a4c9947 100644
--- a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Deflection.c4d/Script.c
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Deflection.c4d/Script.c
@@ -77,15 +77,16 @@ func FxDeflectionPSpellTimer(pClonk, iEffectNumber, iEffectTime)
if(EffectVar(0, pObj, GetEffect("StaffFlight", pObj))==pClonk)
continue;
- var objDirAngle = Angle180(Angle(0, 0, GetXDir(pObj), GetYDir(pObj)));
+ var objDirAngle = Angle180(Angle(GetXDir(pClonk), GetYDir(pClonk), GetXDir(pObj), GetYDir(pObj)));
var objShieldAngle = Angle180(Angle(GetX(pClonk), GetY(pClonk), GetX(pObj), GetY(pObj)));
var diffAngle = Angle180((objShieldAngle - objDirAngle) - 180);
var exitAngle = objShieldAngle + diffAngle;
- var diffSpeed = Distance(GetXDir(pClonk), GetYDir(pClonk), GetXDir(pObj), GetYDir(pObj));
+ var objSpeed = GetSpeed(pObj);
+ var exitSpeed = Distance(0, 0, Sin(exitAngle, objSpeed) + GetXDir(pClonk), -Cos(exitAngle, objSpeed) + GetYDir(pClonk));
- if (Abs(diffAngle) > 90) continue;
+ if (Abs(diffAngle) >= 90) continue;
- SetSpeed(Sin(exitAngle, diffSpeed),-Cos(exitAngle, diffSpeed), pObj);
+ SetSpeed(Sin(exitAngle, exitSpeed),-Cos(exitAngle, exitSpeed), pObj);
CreateParticle("NoGravSpark", AbsX(GetX(pObj)), AbsY(GetY(pObj)), 0, 0, 80, RGB(80,50,50));
if(!GetEffect("IntDeflected", pObj))