/// <summary> /// OnMessageReceived: What to do when our leader sends a message /// </summary> public override void OnMessageReceived(MessageEvent e) { // Fire at a point if (e.Message is PointD) { var p = (PointD)e.Message; // Calculate x and y to target double dx = p.X - X; double dy = p.Y - Y; // Calculate angle to target double theta = Utils.ToDegrees(Math.Atan2(dx, dy)); // Turn gun to target TurnGunRight(Utils.NormalRelativeAngleDegrees(theta - GunHeading)); // Fire hard! Fire(3); } else if (e.Message is RobotColors) { // Set our colors var c = (RobotColors) e.Message; BodyColor = c.bodyColor; GunColor = c.gunColor; RadarColor = c.radarColor; ScanColor = c.scanColor; BulletColor = c.bulletColor; } }
protected override sealed void loadTeamMessages(List<TeamMessage> teamMessages) { if (teamMessages == null) { return; } foreach (TeamMessage teamMessage in teamMessages) { try { using (var ms = new MemoryStream(teamMessage.message)) { var bf = new BinaryFormatter(); object message = bf.Deserialize(ms); var evnt = new MessageEvent(teamMessage.sender, message); eventManager.add(evnt); } } catch (Exception e) { output.WriteLine(e); } } }
/// <inheritdoc /> public virtual void OnMessageReceived(MessageEvent evnt) { }