Fix angular speed calculation

This commit is contained in:
DarkPhoenix
2019-07-03 10:19:33 +03:00
parent b8d189c0ad
commit 6ab79ab5c0

View File

@@ -428,11 +428,13 @@ def calculateAngularVelocity(atkSpeed, atkAngle, atkRadius, distance, tgtSpeed,
atkAngle = atkAngle * math.pi / 180
tgtAngle = tgtAngle * math.pi / 180
ctcDistance = atkRadius + distance + tgtRadius
atkSpeedX = atkSpeed * math.cos(atkAngle)
atkSpeedY = atkSpeed * math.sin(atkAngle)
tgtSpeedX = tgtSpeed * math.cos(tgtAngle)
tgtSpeedY = tgtSpeed * math.sin(tgtAngle)
relSpeed = math.sqrt((atkSpeedX + tgtSpeedX) ** 2 + (atkSpeedY + tgtSpeedY) ** 2)
# Target is to the right of the attacker, so transversal is projection onto Y axis
transSpeed = abs(atkSpeed * math.sin(atkAngle) - tgtSpeed * math.sin(tgtAngle))
if ctcDistance == 0:
angularSpeed = 0 if transSpeed == 0 else math.inf
else:
angularSpeed = transSpeed / ctcDistance
return angularSpeed
def calculateRangeFactor(atkOptimalRange, atkFalloffRange, distance):