示例#1
0
        private void DrawTileBackground(Tile tile, Ship ship, ref TileChange tileChange)
        {
            TileType type = tile.Type;

            // не зарисовываем корабль водой
            if (ship != null)
            {
                return;
            }

            // после открытия поля - фон не меняется
            //if (type != TileType.Unknown)
            //{
            //  return;
            //}

            int rotateCount = 0;

            string filename;

            switch (type)
            {
            case TileType.Unknown:
                tileChange.IsUnknown = true;
                filename             = @"back";
                break;

            case TileType.Water:
                filename = @"water";
                break;

            case TileType.Grass:
                filename = @"empty1";
                break;

            case TileType.Chest1:
                filename = @"chest1";
                break;

            case TileType.Chest2:
                filename = @"chest2";
                break;

            case TileType.Chest3:
                filename = @"chest3";
                break;

            case TileType.Chest4:
                filename = @"chest4";
                break;

            case TileType.Chest5:
                filename = @"chest5";
                break;

            case TileType.Fort:
                filename = @"fort";
                break;

            case TileType.RespawnFort:
                filename = @"respawn";
                break;

            case TileType.RumBarrel:
                filename = @"rumbar";
                break;

            case TileType.Horse:
                filename = @"horse";
                break;

            case TileType.Cannon:
                filename    = @"cannon";
                rotateCount = tile.CannonDirection;
                break;

            case TileType.Croc:
                filename = @"croc";
                break;

            case TileType.Airplane:
                filename = @"airplane";
                break;

            case TileType.Balloon:
                filename = @"balloon";
                break;

            case TileType.Ice:
                filename = @"ice";
                break;

            case TileType.Trap:
                filename = @"trap";
                break;

            case TileType.Canibal:
                filename = @"canibal";
                break;

            case TileType.Spinning:
                switch (tile.SpinningCount)
                {
                case 2:
                    filename = "forest";
                    break;

                case 3:
                    filename = "desert";
                    break;

                case 4:
                    filename = "swamp";
                    break;

                case 5:
                    filename = "mount";
                    break;

                default:
                    throw new NotSupportedException();
                }
                break;

            case TileType.Arrow:
                var search = ArrowsCodesHelper.Search(tile.ArrowsCode);
                rotateCount = search.RotateCount;
                int fileNumber = (search.ArrowType + 1);
                filename = @"arrow" + fileNumber;
                break;

            default:
                throw new NotSupportedException();
            }

            string relativePath = string.Format(@"/Content/Fields/{0}.png", filename);

            tileChange.BackgroundImageSrc = relativePath;
            tileChange.Rotate             = rotateCount;
        }