private Vector3 GetTargetPositionByDamageRatio(MySmallShipBot bot) { Vector3 targetPos = m_target.GetPosition(); if (MySession.PlayerShip != null && MyFactions.GetFactionsRelation(bot, MySession.PlayerShip) == MyFactionRelationEnum.Enemy) { Vector3 botPos = bot.GetPosition(); Vector3 botToTarget = targetPos - botPos; Vector3 dir = Vector3.Normalize(botToTarget); float degrees = (float)Math.Pow(120, bot.GetDamageRatio() * 1.5 - 1.2) * 4f; float deviatingAngle = MathHelper.ToRadians(degrees); dir = MyUtilRandomVector3ByDeviatingVector.GetRandom(dir, deviatingAngle); targetPos = botPos + botToTarget.Length() * dir * 3; } return(targetPos); }
private Vector3 GetTargetPositionByDamageRatio(MySmallShipBot bot) { Vector3 targetPos = m_target.GetPosition(); if (MySession.PlayerShip != null && MyFactions.GetFactionsRelation(bot, MySession.PlayerShip) == MyFactionRelationEnum.Enemy) { Vector3 botPos = bot.GetPosition(); Vector3 botToTarget = targetPos - botPos; Vector3 dir = Vector3.Normalize(botToTarget); float degrees = (float)Math.Pow(120, bot.GetDamageRatio() * 1.5 - 1.2) * 4f; float deviatingAngle = MathHelper.ToRadians(degrees); dir = MyUtilRandomVector3ByDeviatingVector.GetRandom(dir, deviatingAngle); targetPos = botPos + botToTarget.Length() * dir * 3; } return targetPos; }