diff options
Diffstat (limited to 'TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d')
| -rw-r--r-- | TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Deflection.c4d/Script.c | 9 |
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)) |
