private Tile Create(Tile.TileType type) { //This method is used to create objects and also place them on the map. random = new Random(); Tile tempTile = null; int randomX = random.Next(1, mapWidth - 1); int randomY = random.Next(1, mapHeight - 1); int gold = random.Next(1, 6); int heroHP = 0; char heroSymbol = 'H'; while ((mapArray[randomX, randomY] is EmptyTile) == false) { randomX = random.Next(1, mapWidth); randomY = random.Next(1, mapHeight); } switch (type) { case Tile.TileType.Hero: tempTile = new Hero(randomX, randomY, heroHP, heroSymbol); break; case Tile.TileType.Enemy: //Integrate the Gold and Mage classes into your existing GameEngine and Map classes. //Your Enemy array in map should now randomize between Goblins, Mages and Leaders. int typeEnemy = random.Next(4); if (typeEnemy <= 1) { tempTile = new Goblin(randomX, randomY); } else if (typeEnemy <= 2) { tempTile = new Mage(randomX, randomY); } else if (typeEnemy <= 3) { tempTile = new Leader(randomX, randomY); } break; case Tile.TileType.Gold: tempTile = new Gold(randomX, randomY); break; case Tile.TileType.Weapon: int typeWeapon = random.Next(4); if (typeWeapon <= 1) { tempTile = new MeleeWeapon(randomX, randomY, 'D', MeleeWeapon.Types.Dagger); } else if (typeWeapon <= 2) { tempTile = new MeleeWeapon(randomX, randomY, 'S', MeleeWeapon.Types.Longsword); } else if (typeWeapon <= 3) { tempTile = new RangedWeapon(randomX, randomY, 'R', RangedWeapon.Types.Rifle); } else if (typeWeapon <= 4) { tempTile = new RangedWeapon(randomX, randomY, 'B', RangedWeapon.Types.Longbow); } break; default: break; } mapArray[randomX, randomY] = tempTile; return(tempTile); }