-- Reflection calculations vectorFrontDirection = ba.createVector(0,0,1) if booleanBarrelRoll == 1 then for k=1,#mn.Weapons do objectWeapon = mn.Weapons[k] stringWeaponTeam = objectWeapon.Team.Name if stringWeaponTeam ~= "Friendly" then vectorWeaponPosition = objectWeapon.Position vectorMePosition = me.Position floatWeaponDistance = vectorMePosition:getDistance(vectorWeaponPosition) if floatWeaponDistance <= 25 then vectorImpactNormal = vectorWeaponPosition - vectorMePosition orientationWeapon = objectWeapon.Orientation vectorWeaponDirection = orientationWeapon:unrotateVector(vectorFrontDirection) floatImpactAngle = vectorImpactNormal:getDotProduct(vectorWeaponDirection) if floatImpactAngle > 0 then floatReflectionModifier = 2 * vectorWeaponDirection:getDotProduct(vectorImpactNormal) / vectorImpactNormal:getDotProduct(vectorImpactNormal) vectorReflection = floatReflectionModifier * vectorImpactNormal vectorWeaponNewDirection = vectorWeaponDirection - vectorReflectionModifier orientationNewWeapon = vectorWeaponNewDirection:getOrientation() objectWeapon.Orientation = orientationNewWeapon end end end end end