Ejemplo n.º 1
0
        public override void Run()
        {
            Robot.BodyColor = System.Drawing.Color.Pink;

            if (Robot.RadarTurnRemaining == 0)
            {
                Robot.SetTurnRadarLeft(360);
            }

            double xMiddle = Robot.BattleFieldWidth / 2;
            double yMiddle = Robot.BattleFieldHeight / 2;

            if (!isTurning && !isDriving)
            {
                Robot.SetTankHeadingTo(CoordinateHelper.GetAngle(Robot.X, Robot.Y, xMiddle, yMiddle));
                isTurning = true;
            }
            else if (Robot.TurnRemaining == 0 && !isDriving)
            {
                Robot.SetAhead(200);
                isDriving = true;
            }
            else if (Robot.DistanceRemaining == 0 && Robot.TurnRemaining == 0)
            {
                Robot.CurrentPhase      = RoboPhase.WallRush;
                Robot.TargetEnemyName   = null;
                Robot.AttackerEnemyName = null;
            }
        }
Ejemplo n.º 2
0
        private void Scan()
        {
            var pos = Robot.GetLastTargetCoordinates();

            if (pos.X == 0 && pos.Y == 0)
            {
                return;
            }

            double degrees = CoordinateHelper.GetAngle(Robot.X, Robot.Y, pos.X, pos.Y);

            double diff = (degrees - Robot.RadarHeading) + 180;

            if (Robot.RadarTurnRemaining == 0)
            {
                if (scanLeft)
                {
                    Robot.SetRadarHeadingTo(degrees + 45);
                    scanLeft = false;
                }
                else
                {
                    Robot.SetRadarHeadingTo(degrees - 45);
                    scanLeft = true;
                }
            }

            //Robot.SetRadarHeadingTo(degrees - 45);
            //Robot.SetRadarHeadingTo(degrees + 45);
        }
Ejemplo n.º 3
0
        private void Shoot(double power)
        {
            double degrees = CoordinateHelper.GetAngle(Robot.X, Robot.Y, Robot.Target.X, Robot.Target.Y);

            Robot.SetGunHeadingTo(degrees);

            if (Robot.GunTurnRemaining <= 0 && Robot.GunHeat == 0 && Robot.Target.X > 0 && Robot.Target.Y > 0)
            {
                Robot.SetFire(power);
            }
        }