public void UpdateParticles() { foreach (Particle p in particles) { if (!p.timer.IsRunning) { p.timer.Start(); } if (p.timer.ElapsedMilliseconds >= 250) { p.Pos = new EngineFunctions.COORD(p.Pos.X, (short)(p.Pos.Y - p.Speed)); p.Moved += p.Speed; if (p.Pos.Y < 0 || p.Moved > p.Life) { p.KillFlag = true; } p.timer.Restart(); } if (p.Pos.Y < 20 && p.Pos.Y >= 0) { EngineFunctions.DrawToConsole(p.Pos, p.PartChar, p.Color, Map.CurLevelInfo.Key); } } particles.RemoveAll(x => x.KillFlag == true); }
public void DrawMenu() { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(10, 5), line1, ConsoleColor.White); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(10, 6), line2, ConsoleColor.White); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(10, 7), line3, ConsoleColor.White); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(10, 8), line4, ConsoleColor.White); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(20, 12), line5, ConsoleColor.White); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(20, 13), line6, ConsoleColor.White); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(20, 14), line7, ConsoleColor.White); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(20, 15), line8, ConsoleColor.White); for (int x = 0; x < Console.WindowWidth; x++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)x, 17), '-', ConsoleColor.White); } if (!showSaves) { foreach (MenuItem mi in defaultItems) { EngineFunctions.DrawToConsole(mi.position, mi.text, ConsoleColor.White); } SetSelection(defaultItems); } else { foreach (MenuItem mi in saveItems) { EngineFunctions.DrawToConsole(mi.position, mi.text, ConsoleColor.White); } SetSelection(saveItems); } }
public void DrawEnemy() { switch (enemytype) { default: case EType.Grunt: EngineFunctions.DrawToConsole(loc, 'E', ConsoleColor.DarkRed); break; case EType.Beast: EngineFunctions.DrawToConsole(loc, 'B', ConsoleColor.DarkMagenta); break; case EType.Fighter: EngineFunctions.DrawToConsole(loc, 'F', ConsoleColor.Blue); break; case EType.Warrior: EngineFunctions.DrawToConsole(loc, 'W', ConsoleColor.Red); break; case EType.Glider: EngineFunctions.DrawToConsole(loc, 'G', ConsoleColor.DarkCyan); break; case EType.Dragon: EngineFunctions.DrawToConsole(loc, 'D', Map.CurLevelInfo.Key); break; } }
public void DrawDivider() { for (int x = 0; x < Console.WindowWidth; x++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(x), (short)(21)), '-', ConsoleColor.DarkGray); } }
private void DrawDoor(Tuple <EngineFunctions.COORD, EngineFunctions.COORD> t) { if (t.Item1.X < t.Item2.X) //door to the right { for (int y = (Console.WindowHeight - 10) / 2 - 2; y <= (Console.WindowHeight - 10) / 2 + 2; y++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(Console.WindowWidth - 1), (short)y), 'X', ConsoleColor.DarkYellow); } } else if (t.Item1.X > t.Item2.X) //door to the left { for (int y = (Console.WindowHeight - 10) / 2 - 2; y <= (Console.WindowHeight - 10) / 2 + 2; y++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(0, (short)y), 'X', ConsoleColor.DarkYellow); } } else if (t.Item1.Y < t.Item2.Y) // door to the bottom { for (int x = Console.WindowWidth / 2 - 2; x <= Console.WindowWidth / 2 + 2; x++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)x, (short)(Console.WindowHeight - 10)), 'X', ConsoleColor.DarkYellow); } } else if (t.Item1.Y > t.Item2.Y) // door to the top { for (int x = Console.WindowWidth / 2 - 2; x <= Console.WindowWidth / 2 + 2; x++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)x, 0), 'X', ConsoleColor.DarkYellow); } } }
public void DrawItem() { switch (IType) { case ItemType.Bomb: EngineFunctions.DrawToConsole(Location, 'B', ConsoleColor.DarkBlue); break; case ItemType.Heart: EngineFunctions.DrawToConsole(Location, 'H', ConsoleColor.Magenta); break; case ItemType.Key: EngineFunctions.DrawToConsole(Location, 'K', ConsoleColor.White); break; case ItemType.Magic: EngineFunctions.DrawToConsole(Location, 'M', ConsoleColor.DarkCyan); break; case ItemType.Crystal: EngineFunctions.DrawToConsole(Location, (char)0xA4, ConsoleColor.Yellow); break; case ItemType.Sphere: EngineFunctions.DrawToConsole(Location, '0', Map.CurLevelInfo.Key); break; } }
public void DrawSpheres() { short xStart = (short)(Console.WindowWidth / 1.25); short yStart = (short)(Console.WindowHeight - 3); for (short x = 0; x < Spheres.Count; x++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(xStart + x), yStart), (char)0xA4, Spheres[x]); } }
public void DrawItemsToBuy() { short x = 30; for (int index = 0; index < 3; index++) { prices[index] = GetPrice(itemsForSale[index]); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(x + index * 10), 9), prices[index].ToString(), ConsoleColor.Yellow); EngineFunctions.screenBufferArray[11, x + index * 10 + 1] = GetChar(itemsForSale[index]); } }
public void DrawItemAmounts() { short xStart = (short)(Console.WindowWidth / 1.25); short yStart = (short)(Console.WindowHeight - 7); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xStart, yStart), "Keys: " + Keys, ConsoleColor.White); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xStart, (short)(yStart + 1)), "Bombs: " + Bombs, ConsoleColor.DarkBlue); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xStart, (short)(yStart + 2)), "Magic: " + MagicAmt, ConsoleColor.DarkCyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xStart, (short)(yStart + 3)), (char)(0xA7), ConsoleColor.Yellow); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(xStart + 1), (short)(yStart + 3)), ": " + Money, ConsoleColor.Yellow); }
public void DrawItem(ItemType it) { short start = (short)(Console.WindowWidth / 3 + 15); for (short x = start; x < (start + 11); x++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(x, (short)(Console.WindowHeight - 2)), '-', ConsoleColor.White); if (x == start + 4 || x == start + 6) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(x, (short)(Console.WindowHeight - 8)), ' ', ConsoleColor.White); } else if (x == start + 5) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(x, (short)(Console.WindowHeight - 8)), 'e', ConsoleColor.White); } else { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(x, (short)(Console.WindowHeight - 8)), '-', ConsoleColor.White); } } for (short y = (short)(Console.WindowHeight - 8); y <= Console.WindowHeight - 2; y++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start - 1), y), '|', ConsoleColor.White); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 11), y), '|', ConsoleColor.White); } switch (it) { case ItemType.Bomb: default: EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 6), (short)(Console.WindowHeight - 7)), '*', ConsoleColor.DarkBlue); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 5), (short)(Console.WindowHeight - 6)), '/', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 4), (short)(Console.WindowHeight - 6)), '_', ConsoleColor.Blue); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 3), (short)(Console.WindowHeight - 5)), '/', ConsoleColor.Blue); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 5), (short)(Console.WindowHeight - 5)), '\\', ConsoleColor.Blue); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 3), (short)(Console.WindowHeight - 4)), '\\', ConsoleColor.Blue); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 4), (short)(Console.WindowHeight - 4)), '_', ConsoleColor.Blue); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 5), (short)(Console.WindowHeight - 4)), '/', ConsoleColor.Blue); break; case ItemType.Magic: EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 5), (short)(Console.WindowHeight - 7)), '_', ConsoleColor.DarkGray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 4), (short)(Console.WindowHeight - 6)), '/', ConsoleColor.DarkGray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 6), (short)(Console.WindowHeight - 6)), '\\', ConsoleColor.DarkGray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 4), (short)(Console.WindowHeight - 5)), '|', ConsoleColor.White); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 5), (short)(Console.WindowHeight - 5)), '~', ConsoleColor.DarkCyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 6), (short)(Console.WindowHeight - 5)), '|', ConsoleColor.White); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 4), (short)(Console.WindowHeight - 4)), '\\', ConsoleColor.DarkGray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 5), (short)(Console.WindowHeight - 4)), '_', ConsoleColor.DarkGray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 6), (short)(Console.WindowHeight - 4)), '/', ConsoleColor.DarkGray); break; } }
public void DrawShop() { short yBottom = (short)(Console.WindowHeight - 10); short Wstop = (short)(Console.WindowWidth - 3 * (Console.WindowWidth / 4)); short Estop = (short)(Console.WindowWidth - (Console.WindowWidth / 4)); for (int i = Wstop; i < Console.WindowWidth / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = Console.WindowWidth / 2 + 2; i <= Estop; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = Wstop; i <= Estop; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), 0), '#', ConsoleColor.Gray); } for (int i = 0; i < Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(Wstop, (short)(i)), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(Estop, (short)(i)), '#', ConsoleColor.Gray); } if (CanBuy) { for (int x = Console.WindowWidth / 2 - 5; x < Console.WindowWidth / 2 + 5; x++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)x, 3), '_', ConsoleColor.DarkGray); } EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(Console.WindowWidth / 2 - 6), 4), '/', ConsoleColor.DarkGray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(Console.WindowWidth / 2 + 5), 4), '\\', ConsoleColor.DarkGray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(Console.WindowWidth / 2 - 7), 5), '/', ConsoleColor.DarkGray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(Console.WindowWidth / 2 + 6), 5), '\\', ConsoleColor.DarkGray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(Console.WindowWidth / 2 - 3), 5), '*', ConsoleColor.DarkGray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(Console.WindowWidth / 2 + 2), 5), '*', ConsoleColor.DarkGray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(Console.WindowWidth / 2 - 8), 6), '/', ConsoleColor.DarkGray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(Console.WindowWidth / 2 + 7), 6), '\\', ConsoleColor.DarkGray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(Console.WindowWidth / 2 - 3), 6), '_', ConsoleColor.DarkGray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(Console.WindowWidth / 2 - 2), 6), '_', ConsoleColor.DarkGray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(Console.WindowWidth / 2 - 1), 6), '_', ConsoleColor.DarkGray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(Console.WindowWidth / 2), 6), '_', ConsoleColor.DarkGray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(Console.WindowWidth / 2 + 1), 6), '_', ConsoleColor.DarkGray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(Console.WindowWidth / 2 + 2), 6), '_', ConsoleColor.DarkGray); DrawItemsToBuy(); } }
public void DrawShopOnMap() { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(location.X + 2), (short)(location.Y)), '_', ConsoleColor.DarkBlue); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(location.X + 1), (short)(location.Y + 1)), '/', ConsoleColor.DarkBlue); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(location.X + 3), (short)(location.Y + 1)), '\\', ConsoleColor.DarkBlue); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(location.X), (short)(location.Y + 2)), '/', ConsoleColor.DarkBlue); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(location.X + 2), (short)(location.Y + 2)), 'S', ConsoleColor.DarkBlue); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(location.X + 4), (short)(location.Y + 2)), '\\', ConsoleColor.DarkBlue); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(location.X), (short)(location.Y + 3)), '|', ConsoleColor.DarkBlue); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(location.X + 1), (short)(location.Y + 3)), '_', ConsoleColor.DarkBlue); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(location.X + 2), (short)(location.Y + 3)), (char)0x7F, ConsoleColor.DarkBlue); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(location.X + 3), (short)(location.Y + 3)), '_', ConsoleColor.DarkBlue); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(location.X + 4), (short)(location.Y + 3)), '|', ConsoleColor.DarkBlue); }
public void MoveEnemy() { if (DateTime.Now.TimeOfDay.Subtract(timeSinceUpdate) > TimeSpan.FromSeconds(1)) { timeSinceUpdate = DateTime.Now.TimeOfDay; EngineFunctions.COORD curPlayerPos = Game.player.location; // modify x position if (loc.X < curPlayerPos.X && loc.X < Console.WindowWidth - 3) { if (!CheckCollision(FaceDirection.Right)) { EngineFunctions.DrawToConsole(loc, ' '); loc = new EngineFunctions.COORD((short)(loc.X + 1), loc.Y); } } else if (loc.X > curPlayerPos.X && loc.X > 2) { if (!CheckCollision(FaceDirection.Left)) { EngineFunctions.DrawToConsole(loc, ' '); loc = new EngineFunctions.COORD((short)(loc.X - 1), loc.Y); } } // modify y position if (loc.Y < curPlayerPos.Y && loc.Y < Console.WindowHeight - 13) { if (!CheckCollision(FaceDirection.Down)) { EngineFunctions.DrawToConsole(loc, ' '); loc = new EngineFunctions.COORD(loc.X, (short)(loc.Y + 1)); } } else if (loc.Y > curPlayerPos.Y && loc.Y > 2) { if (!CheckCollision(FaceDirection.Up)) { EngineFunctions.DrawToConsole(loc, ' '); loc = new EngineFunctions.COORD(loc.X, (short)(loc.Y - 1)); } } } DrawEnemy(); }
public void DrawHealth(int hp) { short yStep = (short)(Console.WindowHeight - 7); short xStep = 3; for (int x = 0; x < hp; x++) { if (x > hp) { break; } if (x % 16 == 0) { xStep = 3; yStep++; } EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xStep, yStep), '|', ConsoleColor.Red); xStep++; } }
public void PlaceCharacter() { switch (curFacing) { case FaceDirection.Up: default: EngineFunctions.DrawToConsole(location, '^', ConsoleColor.Green); break; case FaceDirection.Down: EngineFunctions.DrawToConsole(location, 'V', ConsoleColor.Green); break; case FaceDirection.Left: EngineFunctions.DrawToConsole(location, '<', ConsoleColor.Green); break; case FaceDirection.Right: EngineFunctions.DrawToConsole(location, '>', ConsoleColor.Green); break; } }
public void PlaceCharacterNewScreen() { Console.SetCursorPosition(location.X, location.Y); switch (curFacing) { case FaceDirection.Up: default: EngineFunctions.DrawToConsole(location, '^', ConsoleColor.Green); break; case FaceDirection.Down: EngineFunctions.DrawToConsole(location, 'V', ConsoleColor.Green); break; case FaceDirection.Left: EngineFunctions.DrawToConsole(location, '<', ConsoleColor.Green); break; case FaceDirection.Right: EngineFunctions.DrawToConsole(location, '>', ConsoleColor.Green); break; } }
private void DrawGameOver() { string gameLine1 = @" /¯¯¯¯/|¯¯¯¯| /¯¯¯¯/-\¯¯¯¯\ \¯¯¯¯\ /¯¯¯¯/ /¯¯¯¯/\¯¯¯¯\ "; string gameLine2 = @" |.: | |____| |..::|_|::. | | .:||¯¯¯||.:: | \____\_¯¯¯¯ "; string gameLine3 = @" |:::| \¯¯¯¯\ |.:::|¯|:::.| |.:::|'\_/'|:::.| /¯¯¯¯/¯____"; string gameLine4 = @" \____\/____/ |____| |____| /____/|\_'_/|\____\ \____\/____/ "; string overLine1 = @" /¯¯¯/¯\¯¯¯\ |¯¯¯¯| |¯¯¯¯| /¯¯¯¯/\¯¯¯¯\ |¯¯¯¯|\¯¯¯¯\ "; string overLine2 = @" |::..| |..::| |.::.| |.::.| \____\_¯¯¯¯ |.:::|/____/ "; string overLine3 = @" |.:::| |::: | |::. | |.:::| /¯¯¯¯/¯____ |::: |\¯¯¯¯\"; string overLine4 = @" \___\_/___/ \___\_/___/ \____\/____/ |____| |____| "; EngineFunctions.DrawToConsole(new EngineFunctions.COORD(9, 6), gameLine1, ConsoleColor.Red); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(9, 7), gameLine2, ConsoleColor.Red); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(9, 8), gameLine3, ConsoleColor.Red); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(9, 9), gameLine4, ConsoleColor.Red); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(12, 11), overLine1, ConsoleColor.Red); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(12, 12), overLine2, ConsoleColor.Red); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(12, 13), overLine3, ConsoleColor.Red); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(12, 14), overLine4, ConsoleColor.Red); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(35, 20), "PRESS SPACE...", ConsoleColor.White); }
private void SetSelection(List <MenuItem> items) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(items[selection].position.X - 4), (short)items[selection].position.Y), "->", ConsoleColor.White); }
public void DrawSword(SwordType st) { short start = (short)(Console.WindowWidth / 3); for (short x = start; x < (start + 11); x++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(x, (short)(Console.WindowHeight - 2)), '-', ConsoleColor.White); if (x == start + 2 || x == start + 8) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(x, (short)(Console.WindowHeight - 8)), ' ', ConsoleColor.White); } else if (x == start + 3) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(x, (short)(Console.WindowHeight - 8)), "Space", ConsoleColor.White); } else if (x >= start + 4 && x <= start + 7) { continue; } else { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(x, (short)(Console.WindowHeight - 8)), '-', ConsoleColor.White); } } for (short y = (short)(Console.WindowHeight - 8); y <= Console.WindowHeight - 2; y++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start - 1), y), '|', ConsoleColor.White); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 11), y), '|', ConsoleColor.White); } switch (st) { case SwordType.Wood: default: for (short y = 0; y < 4; y++) { if (y == 2) { for (short x = 0; x < 3; x++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 4 + x), (short)(Console.WindowHeight - 6 + y)), '=', ConsoleColor.DarkYellow); } } else { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 5), (short)(Console.WindowHeight - 6 + y)), '|', ConsoleColor.DarkYellow); } } break; case SwordType.Short: EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 7), (short)(Console.WindowHeight - 6)), '/', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 6), (short)(Console.WindowHeight - 5)), '/', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 4), (short)(Console.WindowHeight - 3)), '/', ConsoleColor.Gray); for (short x = 0; x < 3; x++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 4 + x), (short)(Console.WindowHeight - 4)), '=', ConsoleColor.Gray); } EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 3), (short)(Console.WindowHeight - 4)), '<', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 7), (short)(Console.WindowHeight - 4)), '>', ConsoleColor.Gray); break; case SwordType.Great: EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 6), (short)(Console.WindowHeight - 7)), '/', ConsoleColor.Cyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 7), (short)(Console.WindowHeight - 7)), '\\', ConsoleColor.Cyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 5), (short)(Console.WindowHeight - 6)), '/', ConsoleColor.Cyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 7), (short)(Console.WindowHeight - 6)), '/', ConsoleColor.Cyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 4), (short)(Console.WindowHeight - 5)), '/', ConsoleColor.Cyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 6), (short)(Console.WindowHeight - 5)), '/', ConsoleColor.Cyan); for (short x = 0; x < 4; x++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 3 + x), (short)(Console.WindowHeight - 4)), '=', ConsoleColor.Cyan); } EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 2), (short)(Console.WindowHeight - 4)), '<', ConsoleColor.Cyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 7), (short)(Console.WindowHeight - 4)), '>', ConsoleColor.Cyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 3), (short)(Console.WindowHeight - 3)), '/', ConsoleColor.Cyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(start + 4), (short)(Console.WindowHeight - 3)), '/', ConsoleColor.Cyan); break; } }
public void Killed() { EngineFunctions.DrawToConsole(loc, ' '); }
private void DrawMagicToScreen(bool erase) { switch (player.curFacing) { case FaceDirection.Up: default: EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X - 2), (short)(player.location.Y - 4)), erase ? ' ' : '*', ConsoleColor.DarkCyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X), (short)(player.location.Y - 4)), erase ? ' ' : '*', ConsoleColor.DarkCyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X + 2), (short)(player.location.Y - 4)), erase ? ' ' : '*', ConsoleColor.DarkCyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X - 1), (short)(player.location.Y - 2)), erase ? ' ' : '*', ConsoleColor.DarkCyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X), (short)(player.location.Y - 2)), erase ? ' ' : '*', ConsoleColor.DarkCyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X + 1), (short)(player.location.Y - 2)), erase ? ' ' : '*', ConsoleColor.DarkCyan); break; case FaceDirection.Down: EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X - 2), (short)(player.location.Y + 4)), erase ? ' ' : '*', ConsoleColor.DarkCyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X), (short)(player.location.Y + 4)), erase ? ' ' : '*', ConsoleColor.DarkCyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X + 2), (short)(player.location.Y + 4)), erase ? ' ' : '*', ConsoleColor.DarkCyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X - 1), (short)(player.location.Y + 2)), erase ? ' ' : '*', ConsoleColor.DarkCyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X), (short)(player.location.Y + 2)), erase ? ' ' : '*', ConsoleColor.DarkCyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X + 1), (short)(player.location.Y + 2)), erase ? ' ' : '*', ConsoleColor.DarkCyan); break; case FaceDirection.Left: EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X - 4), (short)(player.location.Y - 2)), erase ? ' ' : '*', ConsoleColor.DarkCyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X - 4), (short)(player.location.Y)), erase ? ' ' : '*', ConsoleColor.DarkCyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X - 4), (short)(player.location.Y + 2)), erase ? ' ' : '*', ConsoleColor.DarkCyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X - 2), (short)(player.location.Y - 1)), erase ? ' ' : '*', ConsoleColor.DarkCyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X - 2), (short)(player.location.Y)), erase ? ' ' : '*', ConsoleColor.DarkCyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X - 2), (short)(player.location.Y + 1)), erase ? ' ' : '*', ConsoleColor.DarkCyan); break; case FaceDirection.Right: EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X + 4), (short)(player.location.Y - 2)), erase ? ' ' : '*', ConsoleColor.DarkCyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X + 4), (short)(player.location.Y)), erase ? ' ' : '*', ConsoleColor.DarkCyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X + 4), (short)(player.location.Y + 2)), erase ? ' ' : '*', ConsoleColor.DarkCyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X + 2), (short)(player.location.Y - 1)), erase ? ' ' : '*', ConsoleColor.DarkCyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X + 2), (short)(player.location.Y)), erase ? ' ' : '*', ConsoleColor.DarkCyan); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.location.X + 2), (short)(player.location.Y + 1)), erase ? ' ' : '*', ConsoleColor.DarkCyan); break; } }
private void DrawBomb() { if (player.IsBombPlaced && bombTimer.ElapsedMilliseconds >= 2500) { bombTimer.Stop(); bombTimer.Reset(); EngineFunctions.DrawToConsole(player.bombLoc, ' ', ConsoleColor.DarkBlue); player.IsBombPlaced = false; explosion = true; bombTimer.Start(); } if (player.IsBombPlaced && bombTimer.ElapsedMilliseconds <= 1500) { bombTimer.Start(); EngineFunctions.DrawToConsole(player.bombLoc, '@', ConsoleColor.DarkBlue); } else if (player.IsBombPlaced && bombTimer.ElapsedMilliseconds > 1500) { EngineFunctions.DrawToConsole(player.bombLoc, '@', flashing ? ConsoleColor.Red : ConsoleColor.DarkBlue); if (DateTime.Now.TimeOfDay.Subtract(bombFlashTimer) > TimeSpan.FromMilliseconds(100)) { flashing = !flashing; bombFlashTimer = DateTime.Now.TimeOfDay; } } if (explosion && bombTimer.ElapsedMilliseconds <= 150) { if (player.bombLoc.X - 3 > 0) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.bombLoc.X - 3), (short)(player.bombLoc.Y)), '*', ConsoleColor.DarkBlue); } if (player.bombLoc.X - 2 > 0 && player.bombLoc.Y + 1 < Console.WindowHeight - 10) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.bombLoc.X - 2), (short)(player.bombLoc.Y + 1)), '*', ConsoleColor.DarkBlue); } if (player.bombLoc.Y + 3 < Console.WindowHeight - 10) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.bombLoc.X), (short)(player.bombLoc.Y + 3)), '*', ConsoleColor.DarkBlue); } if (player.bombLoc.X + 2 < Console.WindowWidth - 1 && player.bombLoc.Y + 1 < Console.WindowHeight - 10) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.bombLoc.X + 2), (short)(player.bombLoc.Y + 1)), '*', ConsoleColor.DarkBlue); } if (player.bombLoc.X + 3 < Console.WindowWidth - 1) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.bombLoc.X + 3), (short)(player.bombLoc.Y)), '*', ConsoleColor.DarkBlue); } if (player.bombLoc.X + 2 < Console.WindowWidth - 1 && player.bombLoc.Y - 1 > 0) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.bombLoc.X + 2), (short)(player.bombLoc.Y - 1)), '*', ConsoleColor.DarkBlue); } if (player.bombLoc.Y - 3 > 0) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.bombLoc.X), (short)(player.bombLoc.Y - 3)), '*', ConsoleColor.DarkBlue); } if (player.bombLoc.X - 2 > 0 && player.bombLoc.Y - 1 > 0) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(player.bombLoc.X - 2), (short)(player.bombLoc.Y - 1)), '*', ConsoleColor.DarkBlue); } EngineFunctions.DrawToConsole(new EngineFunctions.COORD(player.bombLoc.X, player.bombLoc.Y), '*', ConsoleColor.DarkBlue); } else if (explosion && bombTimer.ElapsedMilliseconds >= 150) { bombTimer.Stop(); bombTimer.Reset(); explosion = false; hud.Bombs--; BombDamage(); } }
public void CheckEnemyCollision() { foreach (Enemy e in enemies) { //push player away from enemy if (e.loc.Equals(new EngineFunctions.COORD((short)(player.location.X - 1), player.location.Y))) { EngineFunctions.DrawToConsole(player.location, ' '); if (player.location.X + 4 >= Console.WindowWidth - 1) { player.location = new EngineFunctions.COORD((short)(Console.WindowWidth - 2), player.location.Y); } else { player.location = new EngineFunctions.COORD((short)(player.location.X + 4), player.location.Y); } player.TookDamage = true; player.CurHP -= e.Damage; } else if (e.loc.Equals(new EngineFunctions.COORD((short)(player.location.X + 1), player.location.Y))) { EngineFunctions.DrawToConsole(player.location, ' '); if (player.location.X - 4 <= 0) { player.location = new EngineFunctions.COORD((short)(1), player.location.Y); } else { player.location = new EngineFunctions.COORD((short)(player.location.X - 4), player.location.Y); } player.TookDamage = true; player.CurHP -= e.Damage; } else if (e.loc.Equals(new EngineFunctions.COORD(player.location.X, (short)(player.location.Y - 1)))) { EngineFunctions.DrawToConsole(player.location, ' '); if (player.location.Y + 4 >= Console.WindowHeight - 11) { player.location = new EngineFunctions.COORD(player.location.X, (short)(Console.WindowHeight - 12)); } else { player.location = new EngineFunctions.COORD(player.location.X, (short)(player.location.Y + 4)); } player.TookDamage = true; player.CurHP -= e.Damage; } else if (e.loc.Equals(new EngineFunctions.COORD(player.location.X, (short)(player.location.Y + 1)))) { EngineFunctions.DrawToConsole(player.location, ' '); if (player.location.Y - 4 <= 0) { player.location = new EngineFunctions.COORD(player.location.X, (short)(1)); } else { player.location = new EngineFunctions.COORD(player.location.X, (short)(player.location.Y - 4)); } player.TookDamage = true; player.CurHP -= e.Damage; } } if (player.CurHP <= 0) { gameOver = true; } player.PlaceCharacter(); }
public void EraseSword() { switch (Sword) { default: case SwordType.Wood: #region Starting Sword switch (curFacing) { case FaceDirection.Up: default: for (int y = 1; y <= 4; y++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(location.X, (short)(location.Y - y)), '|', ConsoleColor.DarkYellow); } break; case FaceDirection.Down: for (int y = 1; y <= 4; y++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(location.X, (short)(location.Y + y)), '|', ConsoleColor.DarkYellow); } break; case FaceDirection.Left: for (int x = 1; x <= 4; x++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(location.X - x), location.Y), '-', ConsoleColor.DarkYellow); } break; case FaceDirection.Right: for (int x = 1; x <= 4; x++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(location.X + x), location.Y), '-', ConsoleColor.DarkYellow); } break; } #endregion break; case SwordType.Short: #region Short Sword switch (curFacing) { case FaceDirection.Up: default: for (int y = 1; y <= 4; y++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(location.X, (short)(location.Y - y)), '|', ConsoleColor.DarkYellow); } break; case FaceDirection.Down: for (int y = 1; y <= 4; y++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(location.X, (short)(location.Y + y)), '|', ConsoleColor.DarkYellow); } break; case FaceDirection.Left: for (int x = 1; x <= 4; x++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(location.X - x), location.Y), '-', ConsoleColor.DarkYellow); } break; case FaceDirection.Right: for (int x = 1; x <= 4; x++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(location.X + x), location.Y), '-', ConsoleColor.DarkYellow); } break; } #endregion break; case SwordType.Great: #region Great Sword switch (curFacing) { case FaceDirection.Up: default: for (int y = 1; y <= 5; y++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(location.X, (short)(location.Y - y)), ' ', ConsoleColor.DarkYellow); } break; case FaceDirection.Down: for (int y = 1; y <= 5; y++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(location.X, (short)(location.Y + y)), ' ', ConsoleColor.DarkYellow); } break; case FaceDirection.Left: for (int x = 1; x <= 5; x++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(location.X - x), location.Y), ' ', ConsoleColor.DarkYellow); } break; case FaceDirection.Right: for (int x = 1; x <= 5; x++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(location.X + x), location.Y), ' ', ConsoleColor.DarkYellow); } break; } #endregion break; } SwordHit = false; }
public void DrawRoom() { short yBottom = (short)(Console.WindowHeight - 10); short xFar = (short)(Console.WindowWidth - 1); #region Room Borders switch (RoomType) { case 0: { #region 4-way intersection for (short i = 0; i < Console.WindowWidth / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(i, (short)(0)), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(i, yBottom), '#', ConsoleColor.Gray); } for (short i = (short)(Console.WindowWidth / 2 + 2); i < Console.WindowWidth; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(i, (short)(0)), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(i, yBottom), '#', ConsoleColor.Gray); } for (short i = 0; i < (Console.WindowHeight - 10) / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(0), i), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xFar, i), '#', ConsoleColor.Gray); } for (short i = (short)((Console.WindowHeight - 10) / 2 + 2); i < Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(0), i), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xFar, i), '#', ConsoleColor.Gray); } #endregion break; } case 1: { #region T-up Intersection for (int i = 0; i < Console.WindowWidth / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), 0), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = Console.WindowWidth / 2 + 2; i < Console.WindowWidth; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), 0), '#', ConsoleColor.Gray); } for (int i = 0; i < Console.WindowWidth; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = 0; i < (Console.WindowHeight - 10) / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(0, (short)(i)), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xFar, (short)(i)), '#', ConsoleColor.Gray); } for (int i = (Console.WindowHeight - 10) / 2 + 2; i < Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(0, (short)(i)), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xFar, (short)(i)), '#', ConsoleColor.Gray); } #endregion break; } case 2: { #region T-down Intersection for (int i = 0; i < Console.WindowWidth / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = Console.WindowWidth / 2 + 2; i < Console.WindowWidth; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = 0; i < Console.WindowWidth; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), 0), '#', ConsoleColor.Gray); } for (int i = 0; i < (Console.WindowHeight - 10) / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xFar, (short)(i)), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(0, (short)(i)), '#', ConsoleColor.Gray); } for (int i = (Console.WindowHeight - 10) / 2 + 2; i < Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(0, (short)(i)), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xFar, (short)(i)), '#', ConsoleColor.Gray); } #endregion break; } case 3: { #region T-Left intersection for (int i = 0; i < Console.WindowWidth / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), 0), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = Console.WindowWidth / 2 + 2; i < Console.WindowWidth; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), 0), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = 0; i < (Console.WindowHeight - 10) / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(0, (short)(i)), '#', ConsoleColor.Gray); } for (int i = (Console.WindowHeight - 10) / 2 + 2; i < Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(0, (short)(i)), '#', ConsoleColor.Gray); } for (int i = 0; i < Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xFar, (short)(i)), '#', ConsoleColor.Gray); } #endregion break; } case 4: { #region T-Right intersection for (int i = 0; i < Console.WindowWidth / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), 0), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = Console.WindowWidth / 2 + 2; i < Console.WindowWidth; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), 0), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = 0; i < (Console.WindowHeight - 10) / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xFar, (short)(i)), '#', ConsoleColor.Gray); } for (int i = (Console.WindowHeight - 10) / 2 + 2; i < Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xFar, (short)(i)), '#', ConsoleColor.Gray); } for (int i = 0; i < Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(0, (short)(i)), '#', ConsoleColor.Gray); } #endregion break; } case 5: { #region NW-corner for (int i = 0; i < Console.WindowWidth / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), 0), '#', ConsoleColor.Gray); } for (int i = Console.WindowWidth / 2 + 2; i < Console.WindowWidth; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), 0), '#', ConsoleColor.Gray);; } for (int i = 0; i < (Console.WindowHeight - 10) / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(0, (short)(i)), '#', ConsoleColor.Gray); } for (int i = (Console.WindowHeight - 10) / 2 + 2; i < Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(0, (short)(i)), '#', ConsoleColor.Gray); } for (int i = 0; i < Console.WindowWidth; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = 0; i < Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xFar, (short)(i)), '#', ConsoleColor.Gray); } #endregion break; } case 6: { #region NE-corner for (int i = 0; i < Console.WindowWidth / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), 0), '#', ConsoleColor.Gray); } for (int i = Console.WindowWidth / 2 + 2; i < Console.WindowWidth; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), 0), '#', ConsoleColor.Gray); } for (int i = 0; i < (Console.WindowHeight - 10) / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xFar, (short)(i)), '#', ConsoleColor.Gray); } for (int i = (Console.WindowHeight - 10) / 2 + 2; i < Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xFar, (short)(i)), '#', ConsoleColor.Gray); } for (int i = 0; i < Console.WindowWidth; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = 0; i < Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(0, (short)(i)), '#', ConsoleColor.Gray); } #endregion break; } case 7: { #region SW-corner for (int i = 0; i < Console.WindowWidth / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = Console.WindowWidth / 2 + 2; i < Console.WindowWidth; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = 0; i < (Console.WindowHeight - 10) / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(0, (short)(i)), '#', ConsoleColor.Gray); } for (int i = (Console.WindowHeight - 10) / 2 + 2; i < Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(0, (short)(i)), '#', ConsoleColor.Gray); } for (int i = 0; i < Console.WindowWidth; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), 0), '#', ConsoleColor.Gray); } for (int i = 0; i < Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xFar, (short)(i)), '#', ConsoleColor.Gray); } #endregion break; } case 8: { #region SE-corner for (int i = 0; i < Console.WindowWidth / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = Console.WindowWidth / 2 + 2; i < Console.WindowWidth; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = 0; i < (Console.WindowHeight - 10) / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xFar, (short)(i)), '#', ConsoleColor.Gray); } for (int i = (Console.WindowHeight - 10) / 2 + 2; i < Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xFar, (short)(i)), '#', ConsoleColor.Gray); } for (int i = 0; i < Console.WindowWidth; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), 0), '#', ConsoleColor.Gray); } for (int i = 0; i < Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(0, (short)(i)), '#', ConsoleColor.Gray); } #endregion break; } case 9: { #region E-dead End short stop = (short)(Console.WindowWidth - 3 * (Console.WindowWidth / 4)); for (int i = stop; i < Console.WindowWidth; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), 0), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = 0; i <= Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(stop, (short)(i)), '#', ConsoleColor.Gray); } for (int i = 0; i < (Console.WindowHeight - 10) / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xFar, (short)(i)), '#', ConsoleColor.Gray); } for (int i = (Console.WindowHeight - 10) / 2 + 2; i < Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xFar, (short)(i)), '#', ConsoleColor.Gray); } #endregion break; } case 10: { #region W-dead End short stop = (short)(Console.WindowWidth - (Console.WindowWidth / 4)); for (int i = 0; i < stop; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), 0), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = 0; i <= Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(stop, (short)(i)), '#', ConsoleColor.Gray); } for (int i = 0; i < (Console.WindowHeight - 10) / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(0, (short)(i)), '#', ConsoleColor.Gray); } for (int i = (Console.WindowHeight - 10) / 2 + 2; i < Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(0, (short)(i)), '#', ConsoleColor.Gray); } #endregion break; } case 11: { #region N-dead End short Wstop = (short)(Console.WindowWidth - 3 * (Console.WindowWidth / 4)); short Estop = (short)(Console.WindowWidth - (Console.WindowWidth / 4)); for (int i = Wstop; i < Console.WindowWidth / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), 0), '#', ConsoleColor.Gray); } for (int i = Console.WindowWidth / 2 + 2; i < Estop; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), 0), '#', ConsoleColor.Gray); } for (int i = Wstop; i <= Estop; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = 0; i < Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(Wstop, (short)(i)), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(Estop, (short)(i)), '#', ConsoleColor.Gray); } #endregion break; } case 12: { #region S-dead End short Wstop = (short)(Console.WindowWidth - 3 * (Console.WindowWidth / 4)); short Estop = (short)(Console.WindowWidth - (Console.WindowWidth / 4)); for (int i = Wstop; i < Console.WindowWidth / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = Console.WindowWidth / 2 + 2; i <= Estop; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = Wstop; i <= Estop; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), 0), '#', ConsoleColor.Gray); } for (int i = 0; i < Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(Wstop, (short)(i)), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(Estop, (short)(i)), '#', ConsoleColor.Gray); } #endregion break; } case 13: { #region H-Hall for (int i = 0; i < Console.WindowWidth; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), 0), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = 0; i < (Console.WindowHeight - 10) / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(0, (short)(i)), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xFar, (short)(i)), '#', ConsoleColor.Gray); } for (int i = (Console.WindowHeight - 10) / 2 + 2; i < Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(0, (short)(i)), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(xFar, (short)(i)), '#', ConsoleColor.Gray); } #endregion break; } case 14: { #region V-Hall short Wstop = (short)(Console.WindowWidth - 3 * (Console.WindowWidth / 4)); short Estop = (short)(Console.WindowWidth - (Console.WindowWidth / 4)); for (int i = Wstop; i < Console.WindowWidth / 2 - 2; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), 0), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = Console.WindowWidth / 2 + 2; i <= Estop; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), 0), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD((short)(i), yBottom), '#', ConsoleColor.Gray); } for (int i = 0; i < Console.WindowHeight - 10; i++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(Wstop, (short)(i)), '#', ConsoleColor.Gray); EngineFunctions.DrawToConsole(new EngineFunctions.COORD(Estop, (short)(i)), '#', ConsoleColor.Gray); } #endregion break; } } #endregion #region Draw Obstacles for (int index = 0; index < blocks.Count; index++) { for (short x = blocks[index].Left; x <= blocks[index].Right; x++) { for (short y = blocks[index].Top; y <= blocks[index].Bottom; y++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(x, y), Map.CurLevelInfo.Value, Map.CurLevelInfo.Key); } } } #endregion #region Erase Sections for (int index = 0; index < destroyed.Count; index++) { EngineFunctions.DrawToConsole(new EngineFunctions.COORD(destroyed[index].X, destroyed[index].Y), ' '); } #endregion }