コード例 #1
0
ファイル: GameBoardViewer.cs プロジェクト: jsnklpn/jatan
        private void DrawBuilding(Graphics gfx, HexPoint point, Building building)
        {
            var centerPoint = HexPointToAbsolutePoint(point);
            if (centerPoint != PointF.Empty) // Should never draw a building at (0,0)...
            {
                Brush b = new SolidBrush(PlayerToColor(building.Player));
                Pen p = new Pen(Color.Black, 1f);

                var relativeSize = (building.Type == BuildingTypes.Settlement) ? (RelativeTileWidth)*(1/5f) : (RelativeTileWidth)*(2/5f);
                var width = this.Width*relativeSize/100f;
                var height = this.Height*relativeSize/100f;
                var rect = centerPoint.GetRect(width, height);

                gfx.FillRectangle(b, rect);
                gfx.DrawRectangle(p, rect.X, rect.Y, rect.Width, rect.Height);

                b.Dispose();
                p.Dispose();
            }
        }
コード例 #2
0
ファイル: GameBoard.cs プロジェクト: jsnklpn/jatan
 /// <summary>
 /// Places a new building onto the board. A player is allowed to upgrade a settlement to a city.
 /// </summary>
 public ActionResult PlaceBuilding(int player, BuildingTypes buildingType, HexPoint point, bool startOfGame)
 {
     var validationResult = ValidateBuildingPlacement(player, buildingType, point, startOfGame);
     if (validationResult.Failed) return validationResult;
     _buildings[point] = new Building(player, buildingType);
     return ActionResult.CreateSuccess();
 }