public override void Run() { _randomGenOffset = new Random(); _randomGenFirePower = new Random(); IsAdjustRadarForGunTurn = true; IsAdjustGunForRobotTurn = true; SetTurnRadarRightRadians(double.PositiveInfinity); while (true) { _scanlessTime++; SetMoveGun(); if (_enemy.Fired) { _robotController.RandomDodge(); } _robotController.SetMoveToWallAndBack(_position.X, _position.Y, true); if (_isAiming) { //If we fire the gun, reset aiming state if (_robotController.CheckFire(_bulletToFire.Power)) { _isAiming = false; _desiredGunBearing = null; _bulletToFire.UpdateInfo(GunHeadingRadians); _bulletsFired.Add(_bulletToFire); _bulletToFire = null; } } //Fire at disabled enemy! if (_enemy.LastEnergy <= 0d) { _robotController.CheckFire(Rules.MIN_BULLET_POWER); } if (_scanlessTime > 3) { SetTurnRadarRightRadians(double.PositiveInfinity); } Execute(); } }