Пример #1
0
        private bool BuildStartRoad(IPlayer player, bool buildWithDevCard)
        {
            int mouseCoorX = 0;
            int mouseCoorY = 0;

            if (this.newMouseState.LeftButton == ButtonState.Pressed &&
                this.oldMouseState.LeftButton == ButtonState.Released &&
                Mouse.GetState().X > 0 && Mouse.GetState().Y > 0)
            {
                mouseCoorX = Mouse.GetState().X;
                mouseCoorY = Mouse.GetState().Y;
            }
            LineObject roadOrBoat = GameClass.Game.RoadsAndBoats.FirstOrDefault(r => r.Rectangle.Contains(mouseCoorX, mouseCoorY));

            if (roadOrBoat != null)
            {
                try
                {
                    var startTempX = roadOrBoat.StartPointX;
                    var startTempY = roadOrBoat.StartPointY;
                    var endTempX   = roadOrBoat.EndPointX;
                    var endTempY   = roadOrBoat.EndPointY;
                    var tempX      = roadOrBoat.ScreenX;
                    var tempY      = roadOrBoat.ScreenY;

                    var imageString = DataGenerator.GenerateRoadImageType(roadOrBoat.StartPointX,
                                                                          roadOrBoat.StartPointY,
                                                                          roadOrBoat.EndPointX,
                                                                          roadOrBoat.EndPointY) + player.Id;
                    Road newRoad = new Road(startTempX, startTempY, endTempX, endTempY, 0,
                                            Content, imageString, tempX, tempY, 20, 30);
                    newRoad.Build(player, buildWithDevCard);
                    LineObject oldRoad = GameClass.GetRoadByBothEnds(startTempX, startTempY, endTempX, endTempY);
                    GameClass.Game.RoadsAndBoats.Remove(oldRoad);
                    GameClass.Game.RoadsAndBoats.Add(newRoad);
                    player.LineObjects.Add(newRoad);
                    return(true);
                }
                catch (Exceptions.IllegalBuildPositionException ib)
                {
                    this.errorMessage = ib.Message;
                }
                catch (Exception e)
                {
                    this.errorMessage = e.Message;
                }
            }
            return(true);
        }