internal RobotView(RobotRunner robot, RobotColorImages images, int index) { _robot = robot; _images = images; _index = index; RobotName = robot.Name; BodyImage = images.Bodies[0]; RadarImage = images.Radars[0]; TurretImage = images.Turrets[0]; }
public Bullet(Battlefield battlefield, double x, double y, double heading, int speed, decimal strength, RobotRunner robotRunner) { _battlefield = battlefield; _x = x; _y = y; _heading = heading; _speed = speed; _strength = strength; _origin = robotRunner; _dead = false; }
public void ShouldDieWhenItHitsARobot() { var customRobot = new TestRobot(); var robot = new RobotRunner(customRobot, _battlefield, 1); var firingRobot = new RobotRunner(customRobot, _battlefield, 1); _battlefield.Add(robot); var bullet = new Bullet(_battlefield, robot.X + 30, robot.Y, 180, 30, 3.0m, firingRobot); bullet.Tick(); Assert.That(bullet.Dead, Is.True); Assert.That(_battlefield.NewExplosions.Count,Is.EqualTo(1)); Assert.That(robot.Energy, Is.EqualTo(97.0m)); Assert.That(firingRobot.DamageGiven, Is.EqualTo(3.0m)); }
public void Add(RobotRunner robot) { _robots.Add(robot); }
public void ShouldBeAbleToAddARobot() { var robot = new RobotRunner(null, _battlefield, 1); _battlefield.Add(robot); Assert.That(_battlefield.Robots.Count, Is.EqualTo(1)); }
public RunOptions(string[] args) { // look for resolution arg X = 800; Y = 800; var arguments = args.ToList(); if (arguments.Count() > 2) { if (IsNumeric(arguments[0]) && IsNumeric(arguments[1])) { X = Convert.ToInt32(args[0]); Y = Convert.ToInt32(args[1]); arguments.RemoveAt(0); arguments.RemoveAt(0); } } var seed = DateTime.Now.Ticks; var seedArgument = SearchForArgumentStartingWith("#", arguments); if (!string.IsNullOrEmpty(seedArgument)) seed = Convert.ToInt32(seedArgument); var timeout = 50000; var timeoutArgument = SearchForArgumentStartingWith("-timeout=", arguments); if (!string.IsNullOrEmpty(timeoutArgument)) timeout = Convert.ToInt32(timeoutArgument); ShowUi = true; if (ArgumentExists("-nogui", arguments)) ShowUi = false; ShowRadar = false; /* ARGV.grep( /^show_radar/ )do |item| show_radar = true ARGV.delete(item) end*/ var teams = 8; var teamsArgument = SearchForArgumentStartingWith("-teams=", arguments); if (!string.IsNullOrEmpty(teamsArgument)) teams = Convert.ToInt32(teamsArgument); if (teams < 0 || teams > 8) teams = 8; if (arguments.Count == 0 || arguments.Count > 8) { Error = true; return; } Battlefield = new Battlefield(X * 2, Y * 2, timeout, seed); var c = 0; var teamDivider = Math.Ceiling(Convert.ToDouble(arguments.Count / teams)); Error = false; foreach (var argument in arguments) { Robot robotShell = null; try { var o = Activator.CreateInstance(argument, argument + "." + argument); robotShell = (Robot)o.Unwrap(); } catch (Exception ex) { Console.WriteLine("Error loading robot: " + argument); Console.WriteLine(ex.ToString()); Error = true; } var team = (int)(c / teamDivider); c += 1; var robot = new RobotRunner(robotShell, Battlefield, team); Battlefield.Add(robot); } }