public bool CheckCollision() { if (curFacing == FaceDirection.Up) { if (EngineFunctions.GetCharacterAtPosition(new EngineFunctions.COORD(location.X, (short)(location.Y - 1))) == '#') { return(true); } else if (EngineFunctions.COLLISION_CHARS.Contains(EngineFunctions.screenBufferArray[location.Y - 1, location.X].AsciiChar)) { return(true); } } else if (curFacing == FaceDirection.Down) { if (EngineFunctions.GetCharacterAtPosition(new EngineFunctions.COORD(location.X, (short)(location.Y + 1))) == '#') { return(true); } else if (EngineFunctions.COLLISION_CHARS.Contains(EngineFunctions.screenBufferArray[location.Y + 1, location.X].AsciiChar)) { return(true); } } else if (curFacing == FaceDirection.Left) { if (EngineFunctions.GetCharacterAtPosition(new EngineFunctions.COORD((short)(location.X - 1), location.Y)) == '#') { return(true); } else if (EngineFunctions.COLLISION_CHARS.Contains(EngineFunctions.screenBufferArray[location.Y, location.X - 1].AsciiChar)) { return(true); } } else if (curFacing == FaceDirection.Right) { if (EngineFunctions.GetCharacterAtPosition(new EngineFunctions.COORD((short)(location.X + 1), location.Y)) == '#') { return(true); } else if (EngineFunctions.COLLISION_CHARS.Contains(EngineFunctions.screenBufferArray[location.Y, location.X + 1].AsciiChar)) { return(true); } } return(false); }