public override void OnScannedRobot(ScannedRobotEvent e) { var closestEnemy = MyBot.GetClosestTarget(); if (!MyBot.IsTeammate(e.Name) && closestEnemy != null && closestEnemy.Name == e.Name) { double absBearing = e.BearingRadians + MyBot.HeadingRadians; Move(e, absBearing); RadarAdjust(e); Fire(e, absBearing); } }
public override void OnScannedRobot(ScannedRobotEvent e) { var closestEnemy = MyBot.GetClosestTarget(); if (closestEnemy != null && closestEnemy.Name == e.Name) { var bullerPower = 300 / e.Distance; //simplest linear targeting algorithm - http://robowiki.net/wiki/Linear_Targeting double absoluteBearing = MyBot.HeadingRadians + e.BearingRadians; MyBot.SetTurnGunRightRadians(Utils.NormalRelativeAngle(absoluteBearing - MyBot.GunHeadingRadians + (e.Velocity * Math.Sin(e.HeadingRadians - absoluteBearing) / Rules.GetBulletSpeed(bullerPower)))); MyBot.SetFire(bullerPower); } }