def __init__(self, characters, **kwargs):
		super(Player, self).__init__(**kwargs)

		self.facing_options = {'u':(0,-1), 'd':(0,1), 'l':(1,0), 'r':(-1,0), 'ur':(1, -1), 'ul':(-1,-1), 'dr':(1,1), 'dl':(-1, 1)}
		self.characters = [create_character(characters[0]), create_character(characters[1]), create_character(characters[2])]

		self.active_character = self.characters[0]
		self.add_widget(self.active_character)

		self.crosshairs = Image(size_hint = (1.0, 1.0), source = './assets/player/crosshairs_normal_u.png', allow_stretch = True)
		self.add_widget(self.crosshairs)
		self.bind(facing = self.update_crosshairs_cb)
Exemplo n.º 2
0
 def test_validate_move_for_all_invalid_moves_north(self):
     board = map.make_board()
     for number in range(5):
         player = characters.create_character()
         player["Position"] = [0, number]
         if board[number][0] == 0:
             self.assertEqual(False, sud.validate_move(board, player, "N"))
Exemplo n.º 3
0
 def test_validate_move_for_all_valid_moves_east(self):
     board = map.make_board()
     for index, coordinate in enumerate(board):
         player = characters.create_character()
         player["Position"] = list(board[index])
         if board[index][1] != 4:
             self.assertEqual(True, sud.validate_move(board, player, "E"))
Exemplo n.º 4
0
 def test_validate_move_for_all_invalid_moves_south(self):
     board = map.make_board()
     for index, coordinate in enumerate(board):
         player = characters.create_character()
         player["Position"] = list(board[index])
         if board[index][0] == 4:
             self.assertEqual(False, sud.validate_move(board, player, "S"))
Exemplo n.º 5
0
def game():
    """
    Plays a game for the user using user input.
    """
    display.display_game_scenario()
    board = map.make_board()
    player = characters.create_character()
    found_exit = False
    while not found_exit:
        display.print_current_position(board, player)
        direction = get_user_choice()
        if direction == "quit":
            print("You have either chosen to quit or died either way you failed your quest!")
            return
        valid_move = validate_move(board, player, direction)
        if valid_move:
            characters.move_character(player, direction)
            found_exit = check_if_exit_is_reached(player)
            if not found_exit:
                if not movement_handler(player):
                    print("You have either chosen to quit or died either way you failed your quest!")
                    return
        else:
            print("You can't go in that direction because it is a wall")
    display.display_game_ending()
Exemplo n.º 6
0
 def test_create_character(self):
     self.assertEqual(
         {
             "Name": "Honorable Knight",
             "Health": 10,
             "Position": [0, 0]
         }, characters.create_character())
Exemplo n.º 7
0
def main():
    print('*****Welcome to Moonfall*******')
    print()
    print('Moonfall is a text based fantasy adventure.')
    print()
    input('Press enter to begin playing.')
    print()
    player = characters.create_character()
    launch(player)
 def test_move_character_north(self):
     board = map.make_board()
     player = characters.create_character()
     for index, coordinate in enumerate(board):
         player["Position"] = list(board[index])
         if board[index][0] != 0:
             expected_position = [
                 player["Position"][0] - 1, player["Position"][1]
             ]
             characters.move_character(player, "N")
             self.assertEqual(expected_position, player["Position"])
Exemplo n.º 9
0
 def test_check_if_exit_is_reached_all_not_reached_positions(self):
     board = map.make_board()
     player = characters.create_character()
     for coordinate in board:
         player["Position"] = list([coordinate])
         self.assertEqual(False, sud.check_if_exit_is_reached(player))